|
Екатерина
Зарегистрирован: 2016-10-07
Сообщений: 1
|
Привет! Помогите плиз разобраться с редиректами на сайте.
Вопрос в следующем:
В правилах htaccess стоит адрес страницы, которая сейчас выходит как 404-ая (/netcat/require/e404.php).
Но, на сайте также настроена другая 404-ая страница, она срабатывает, если набрать любой крокозябный адрес.
Этой настройки в htaccess я не вижу. Получается, что в некоторых случаях выходит одна 404-ая, а в других - другая 404-ая.
Нужно разобраться какие из правил можно отключить без вреда для сайта,
чтобы убрать 404-ую в адресом /netcat/require/e404.php.
В конце htaccess стоят стандартные для всех сайтов правила редиректа на страницы с www
RewriteCond %{HTTP_HOST} ^domain.ru
RewriteRule (.*) http://www.domain.ru/$1 [R=301,L]
Почему-то на Netcat это правило срабатывает только для главной страницы.
Все внутренние, если набрать адрес без www перенаправляются на 404-ую (/netcat/require/e404.php).
В результате, мне нужно настроить редиректы так, чтобы все страницы были с www, и 404-ая выходила правильная, без перенаправления на /netcat/require/e404.php.
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
Екатерина, вам нужно сделать примерно такой кусок htaccess'а:
Код:
RewriteEngine On
(тут ваши правила с редиректами с www)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ /netcat/require/e404.php
RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]
RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]
Скрипт /netcat/require/e404.php - это не обработчик 404 ошибки! Это обработчик всех страниц, обрабатываемых CMS. Поэтому если редиректы нужны, то их надо ставить сразу после RewriteEngine On, а не в самом конце.
|