вопрос
Всем доброго дня!
Есть проблема с 301 редиректом, а точнее он убирает слеш и вылетает страница с ошибкой.
Первый код делает редирект если забыли поставить в конце слеш он его доставляет. Второй код делает редирект на главную страницу убирая дубли с www и .index.php
Теперь к сути проблемы.
Если на сайт заходим так www.site.ru/ или www.site.ru или site.ru/index.php то получаем редирект на главную site.ru/
Если заходим на сайт site.ru/kategoria то получаем редирект на страницу site.ru/kategoria/
А если зайти так www.site.ru/kategoria/ или www.site.ru/kategoria то получаем редирект на страницу site.rukategoria/ то есть между .rukategoria/ пропадает слеш, как это починить ?
С уважением Felix!
Есть проблема с 301 редиректом, а точнее он убирает слеш и вылетает страница с ошибкой.
Первый код делает редирект если забыли поставить в конце слеш он его доставляет. Второй код делает редирект на главную страницу убирая дубли с www и .index.php
Теперь к сути проблемы.
Если на сайт заходим так www.site.ru/ или www.site.ru или site.ru/index.php то получаем редирект на главную site.ru/
Если заходим на сайт site.ru/kategoria то получаем редирект на страницу site.ru/kategoria/
А если зайти так www.site.ru/kategoria/ или www.site.ru/kategoria то получаем редирект на страницу site.rukategoria/ то есть между .rukategoria/ пропадает слеш, как это починить ?
С уважением Felix!
Вот верный и рабочий вариант редиректов, убирает все дубли!
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !.html$
RewriteCond %{REQUEST_URI} !.xml$
RewriteRule (.+) $1/ [R=301,L]
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.site\.ru [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]