Как я могу заставить ErrorDocument в .htaccess вывести неправильный параметр uri?

StackOverflow https://stackoverflow.com/questions/2048888

Вопрос

Я обошел решение преобразовать все uri на одну страницу с помощью ErrorDocument.

Причина этого заключается в отправке файлов И папок (хороших URL-адресов) на одну страницу.Однако мне нужна строка URI для отправки в index.php?uri=string .Возможно ли это с помощью ErrorDocument, или как мне это сделать?

Поэтому мне нужно переписать

http://www.something.com/games/specific-game

Для

http://www.something.com/index.php?uri=/games/specific-game

Возможно ли это вообще, если да, то как?

Это было полезно?

Решение

Если ваш сервер поддерживает включение на стороне сервера (SSI), то вы используете следующее 404.shtml в качестве вашего документа с ошибкой:

<html>
<header>
<meta http-equiv="Refresh" content="0; url=/index.php?uri=<!--#echo var="REQUEST_URI" -->">
</header>
</html>

Редактировать:есть более простой способ:создайте PHP-файл в качестве вашего ErrorDocument, и вы сможете делать в нем все, что угодно под солнцем!:)

РЕДАКТИРОВАТЬ 2:вы можете получить доступ к исходному URI с помощью $_SERVER['REQUEST_URI']

РЕДАКТИРОВАТЬ 3:черт возьми, если вы просто перенаправляете на index.php на том же хостинге вы можете просто установить это index.php файл как ваш ErrorDocument и определите, перенаправлен ли запрос из ошибки 404, проверив, не $_SERVER['REDIRECT_STATUS'] == '404'

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top