Почему редиректит на index.php?

Необходимо настроить на сайте редирект с www на без. Вроде все понятно, но есть одна сложность.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

RewriteEngine On
Options +FollowSymlinks

# редирект с www на без www
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]


Мешают первые две строчки, но их убрать не могу поскольку после их удаление не открываются вложенные страницы - только главная работает. А с ними получается по запросу, скажем www.domen.ru/inner/ меня редиректит на domen.ru/index.php , а должно с www.domen.ru/inner/ на domen.ru/inner/

Вообще полный код выглядит так:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

RewriteEngine On
Options +FollowSymlinks

# редирект с index.php на корень
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://domen.ru [R=301,L]

# редирект со слешем на без слеша на конце
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule .* http://%{HTTP_HOST}%1 [R=301,L,QSA]

# редирект с www на без www
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]


В этом случае со всех вложенных просто попадаю на главную т.е. при запросе www.domen.ru/inner/ попадаю на domen.ru а должен на domen.ru/inner (без www и без "\" на конце).

Может кто знает как это обойти? И есть ли хорошие ресурсы где можно подробно разобрать правила настройки .htaccess?
  • Вопрос задан
  • 236 просмотров
Решения вопроса 1
shambler81
@shambler81 Куратор тега htaccess
ЭЭЭ А ВЫ ПРОБОВАЛИ ПЕРЕМЕСТИТЬ БЛОК С WWW ВВЕРХ ?
все редиректы делайте до ЧПУ
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы