У меня есть следующее RewriteRule. Это переписывает все, что начинается с mac
, linux
или windows
:
RewriteCond $1 ^(mac|linux|windows) [NC]
RewriteRule ^(.*)$ /index.php/site/index/$1 [L]
К сожалению, это также переписывает /mac/test/testing
. Как я могу предотвратить его применение, если после /mac
?
Итак, я нашел решение:
RewriteCond $1 ^(linux|mac|windows)($|\/)$ [NC]
RewriteRule ^(.*)$ /index.php/site/index/$1 [L]
RewriteCond $1 ^(linux|mac|windows)/category/(.*)$ [NC]
RewriteRule ^(.*)$ /index.php/site/category/$1 [L]
RewriteCond $1 ^(app|download)/(.*)$ [NC]
RewriteRule ^(.*)$ /index.php/site/$1 [L]
Обратите внимание $
подпишите в конце первой строки. Я не уверен ($|\/)
- правильный способ сделать косую черту в конце необязательной, но он работает. Любой совет?
Изменить: на самом деле существует более простой способ обработки конечной косой черты.
RewriteCond $1 ^(linux|mac|windows)/?$ [NC]
RewriteRule ^(.*)$ /index.php/site/index/$1 [L]