apache, разрешить имена файлов с '?' - PullRequest
5 голосов
/ 27 октября 2010

Я хочу сделать статическую копию сайта, сохранив существующие URL.Проблема в том, что URL выглядели так:

http://mysite/index.php?id=XXX

, и Apache не хочет найти файл "index.php? Id = XXX".Вместо этого он интерпретирует запрос как файл «index.php» с запросом «id = XXX».

Как я могу попросить Apache прекратить обработку знака вопроса?

Наконец, мое решение:

1) переименовать файлы из "index.php? Id = XXX" в "index.php_id = XXX"

2) Добавить в .htaccess:

RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteCond %{QUERY_STRING} !=""
RewriteRule ^(.*)$ $1_%{QUERY_STRING} [L]

1 Ответ

5 голосов
/ 27 октября 2010

Escape ? как %3f: http://www.example.com/index.php%3fid=XXX.

Если вы разместите файл в каталоге, к которому относятся индексы, Apache правильно сгенерирует ссылки этого формата,Однако вы должны переписать ссылки на существующих страницах.

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