Zloyshaitan 33 Posted December 17, 2013 Report Share Posted December 17, 2013 Здравствуйте.Сразу скажу - в регулярках и синтаксисе .htaccess я деревянный, посему прошу помощи у формчан.Итак - для исключения дублей страниц решил позакрывать адреса на сайте слэшем - чтоб безобразно, но однообразно, прописал а .htaccess RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule ^(.+)/$ /$1 [R=301,L] в результате сейчас у меня все URL закрываются слэшами, т.е site.ru/news/1/site.ru/gallery/1/ и т.д. НО на сайте имеют место некоторые адреса, которые слэшами закрывать нельзя: типа site.ru/gallery/1/zhopa.php а это выражение пытается тоже их закрыть слэшем вот так: site.ru/gallery/1/zhopa.php/ а мне такие фокусы не нужны.Собственно вопрос в том, как переписать условие так, чтобы файлы .php слэшем не закрывались? Quote Link to post Share on other sites
Zloyshaitan 33 Posted December 17, 2013 Author Report Share Posted December 17, 2013 Решено костылем: RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?) RewriteRule .* %1/ [R=301,L] Закрывает слэшами все, кроме файлов имеющих расширения Quote Link to post Share on other sites
Zloyshaitan 33 Posted December 17, 2013 Author Report Share Posted December 17, 2013 еще не конец...оказывается у меня в урлах есть точки кроме как в именах файлов.так что все таки интересует, каким образом можно задать условие для файлов с расширением php Quote Link to post Share on other sites
Zloyshaitan 33 Posted December 24, 2013 Author Report Share Posted December 24, 2013 окончательное решение: RewriteCond %{REQUEST_URI} !(.*/tags.*|.*/archive.*|.php) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ $1/ [R=301,L] Закрываются слешами все УРЛ кроме имеющих в своем составе /tags ИЛИ /archive или расширение phpВ моем случае первые два условия исключения - это каталоги /tags/ и /archive/ и все их содержимое, третье условие исключает файлы с расширением phpТакие дела. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.