Я хочу обрабатывать все входящие запросы одним скриптом (index.php
в веб-корне).
Итак, в настоящее время происходит следующее: http://localhost/foo/bar/baz
маршрутизируется Apache (через .htaccess
) в: http://localhost/index.php?url=foo/bar/baz
Это работаетну, однако, в Firefox я могу сделать это: http://localhost/foo\
-> заметить обратную косую черту .
и Apache вместо того, чтобы делать: /index.php?url=foo\
Издает общую страницу с сообщением об ошибке:
Объект не найден! Запрошенный URL-адрес не найден на этом сервере.Если вы ввели URL-адрес вручную, проверьте правильность написания и повторите попытку.
Если вы считаете, что это ошибка сервера, обратитесь к веб-мастеру.
Ошибка 404 localhost Apache/2.2.14 (Win32) DAV / 2 mod_ssl / 2.2.14 OpenSSL / 0.9.8l mod_autoindex_color PHP / 5.3.1 mod_apreq2-20090110 / 2.7.1 mod_perl / 2.0.4 Perl / v5.10.1
Прямое обращение к: http://localhost/index.php?url=foo\
работает без проблем, однако.
Все сайты, которые я видел в Интернете, кажутся способными изящно обрабатывать обратную косую черту (например, http://stackoverflow.com/tags/php\\\\\
).
Я считаю это поведение ошибкой и хочу заставить Apache правильно перенаправлять обратную косую черту.Вот мой .htaccess
файл в полном объеме:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [L]
Как я могу заставить эту работу работать правильно?
Редактировать: Я только что попробовал это на своем веб-хосте, и это обрабатывается правильноими.Заставляет меня думать, что это какая-то настройка в httpd.conf
.