htaccess - удаляет косую черту, кроме - PullRequest
1 голос
/ 22 августа 2011

У меня есть следующее в htaccess для удаления конечных слешей:

#RewriteCond %{HTTP_HOST} !^\.example\.com$ [NC]
#RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

Это прекрасно работает, но теперь мне нужно добавить исключение из этого правила. У меня есть папка (назовем ее «myfolder»), которая нуждается в конце. Можно ли изменить вышеуказанное условие, чтобы разрешить это?

1 Ответ

2 голосов
/ 22 августа 2011

Конечно, вот так, например:

RewriteCond %{HTTP_HOST} !^\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/myfolder/$
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

Это исключит перенаправление http://example.com/myfolder/ на http://example.com/myfolder. Если myfolder находится в подпапке, вам необходимо соответствующим образом изменить путь в состоянии перезаписи.


Если вы хотите исключить myfolder независимо от того, где он находится (например, /myfolder/, /something/myfolder/ или /something/interesting/myfolder/), измените условие перезаписи соответствующим образом:

RewriteCond %{HTTP_HOST} !^\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} !/myfolder/$
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...