2017-02-02 4 views
2

У меня есть следующий в моем файле .htaccess:Игнорировать завершающий косую черту из RewriteCond и RewriteRule

RewriteCond %{REQUEST_METHOD} GET 
RewriteCond %{DOCUMENT_ROOT}/cached/%{REQUEST_URI}\.html -f 
RewriteRule .* cached/%{REQUEST_URI}\.html [L] 

У меня есть URL blah.com/a/

И у меня есть файл кэшированного/a.html

Как я могу сказать, мой HTAccess игнорировать слэш для того, чтобы искать и показать a.html вместо/.html

Примечание: удаление слэш из URL не вариант, как URL похлопывание краны уже установлены.

ответ

2

Это потому, что% {REQUEST_URI} добавляет конечную косую черту к цели, которая сопоставляется с недопустимым uri /file/.html, для решения этой проблемы вам нужно использовать backrefrence.

RewriteCond %{DOCUMENT_ROOT}/cached/$1.html -f 
RewriteRule ^(.*?)/?$ /cached/$1.html [L]