Как я могу получить ErrorDocument в .htaccess для вывода неправильного параметра URI? - PullRequest
1 голос
/ 12 января 2010

Я обошел решение для преобразования всех 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

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

1 Ответ

2 голосов
/ 12 января 2010

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

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

РЕДАКТИРОВАТЬ: есть более простой способ: создать файл PHP в качестве своего ErrorDocument, и вы можете делать в нем все что угодно! :)

EDIT2: вы можете получить доступ к исходному URI, используя $_SERVER['REQUEST_URI']

EDIT3: черт, если вы просто перенаправляете на index.php на том же хосте, вы можете просто установить этот файл index.php в качестве ErrorDocument и определить, перенаправлен ли запрос с ошибки 404, проверив, если $_SERVER['REDIRECT_STATUS'] == '404'

...