@Hasan81

Error 404 htaccess при включеном RewriteEngine on?

Здравствуйте!
есть .htaccess:

AddDefaultCharset UTF-8
Options -Indexes
RewriteEngine on
RewriteRule ^([A-Za-z0-9-/]+)$ /index.php?qline=$1 [L]
ErrorDocument 404 /index.php?base=error&addr=error

обработка вывода странички 404 на php тоже реализована

НО естественно если написать сайт.ру/test/test и такой страницы нет, то сервер все равно ругаться не будет, а отдаст /index.php?base=test&addr=test, а не /index.php?base=testerror&addr=error как хотелось бы

Пожалуйста подскажите ошибку.

Может мне переписать одну строку RewriteRule ^([A-Za-z0-9-/]+)$ /index.php?qline=$1 [L] на несколько:

RewriteRule ^(page)/(.*)$ /index.php?base=page&addr=$2 [L]
RewriteRule ^(catalog)/(.*)$ /index.php?base=catalog&addr=$2 [L]
и т.д.

или что-то другое?
  • Вопрос задан
  • 351 просмотр
Решения вопроса 1
shambler81
@shambler81 Куратор тега htaccess
Исходя из идиотских урлов это явно самопись, ни один из известных мне урлов 404 с гет параметрами не содержет.
А следовательно это явно самопись.
Отслеживать 404 бло-бы правельней на стороне php средствами вашего ЧПУ
Так же я бы заострил внимание что из урла и индекс нужно убирать и гет параметры в идиале оставляя нормальное ЧПУ
/catalog/tovar1/
без всяких
index.php?base=page&addr=$2
Однако отвечу вам на ваш вопрос
Не работает у вас по нескольким причинам.
1. спецсимволы нужно экранировать
ndex.php?base угадайте где он тут, притом это настолько частая ошибка что в некоторых версиях веб серверов ее специально пофиксили
2. ну и главное GET не является частью RequestURI и естественно не попадает в регулярку.
Для выделения гет параметров используется другой метод.
.
# 301 --- http://www.mydefile.ru/company/?section=torgovlya&PAGEN_1=9 => http://www.mydefile.ru/about/
RewriteCond %{QUERY_STRING} (^|&)section=torgovlya($|&)
RewriteCond %{QUERY_STRING} (^|&)PAGEN_1=9($|&)
RewriteRule ^company/$ /about/? [L,R=301]

В последнем правиле я показал как удалить гет параметр вовсе
Как добавить вы уже сообразили.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы