Apache .htaccess 404 ошибка перенаправления - PullRequest
0 голосов
/ 02 марта 2011

Я пытаюсь создать файл htaccess, который будет перенаправлять все ошибки 404 через index.php. Мне бы хотелось, чтобы страница, к которой пользователь не смог получить доступ, была добавлена ​​к URL index.php, чтобы я мог выяснить, какой запрос страницы не удался.

Например, если они пытались получить доступ к http://example.com/doesntexist.php,, Apache должен перенаправить их на http://example.com/index.php/doesntexist

Вот что у меня есть:

RewriteCond %{REQUEST_FILENAME}  !-l
RewriteCond %{REQUEST_FILENAME}  !-d
RewriteCond %{REQUEST_FILENAME}  !-f
RewriteRule .* index.php?%{QUERY_STRING} [L]

Это работает на одном из моих веб-хостов, но не удалось, когда я перенес сайт на другой веб-хост (GoDaddy).

Спасибо, ребята

Ответы [ 2 ]

5 голосов
/ 02 марта 2011

Я не могу проверить это прямо сейчас, но согласно этому ответу , когда вы устанавливаете

ErrorDocument /404.php

(или index.php, не имеет значения)

Переменная $_SERVER["REQUEST_URI"] будет содержать исходный ошибочный запрос.

0 голосов
/ 25 марта 2014

Примечание от прямого решения, поскольку это помешало правильному перенаправлению ErrorDocument для работы. Надеюсь, что это послужит ссылкой для любого, кто случайно наткнулся на ту же ошибку, что и моя.

Я создал .htaccess и поставил

ErrorDocument 404 /Error/404.html

Но перенаправление никогда не работает, и вместо этого была показана страница по умолчанию Not Found.
Проблема на самом деле заключается в настройке в apache2.conf (или httpd.conf).

Удаление строки ниже сразу решило проблему

AllowOverride None

Запрещает .htaccess переопределять настройку по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...