Есть ли способ заставить Apache обслуживать файлы с вопросительным знаком в названии? - PullRequest
5 голосов
/ 18 марта 2010

Я удалил кучу страниц, используя wget -m -k -E. Полученные файлы имеют имена в виде foo.php? Bar.html. Apache угадывает все после? такое строка запроса, есть ли способ сказать ей игнорировать? в качестве разделителя строки запроса (и смотрите foo.php? bar.html как запрошенный файл, а не foo.php)?

Чтобы спасти вас от поездки на страницу wget:
-m: рекурсивное зеркало
-E: foo.php? Bar становится foo.php? Bar.html
-k: конвертировать ссылки на страницах (foo.php? bar теперь ссылается на foo.php? bar.html внутри всех страниц, чтобы они правильно отображались)

Ответы [ 2 ]

4 голосов
/ 18 марта 2010

избежал бы? как% 3F добиваются цели?

3 голосов
/ 06 октября 2015

Apache v1 использовал их для обработки, а v2 - нет.

Я сделал это с помощью mod_rewrite. Предложение Натана в виде кода:

RewriteEngine On 

# Convert ? -> %3F in queries and add .html to the end of the filename
RewriteCond %{ENV:REDIRECT_STATUS} !200 
RewriteCond %{QUERY_STRING} !^$ 
RewriteRule ^(.*)$ /$1\%3F%{QUERY_STRING}.html [L,NE]

# An addition for *.php files without question mark in its name, adding html to the end of the filename
RewriteRule ^(.*?)\.php$ $1.php.html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...