2010-10-27 8 views
5

Я хочу сделать статическую копию сайта, сохранив существующие URL-адреса. Проблема заключается в том, что URL-адреса были похожи:apache, разрешить имена файлов с '?'

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

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

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


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

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

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

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

ответ

5

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

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

Смежные вопросы