Есть ли способ заставить Apache обслуживать файлы с вопросительным знаком в их названии?



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



Чтобы сэкономить вам поездку в wget manpage:

-m: зеркало рекурсивно

- Э : фу.php?бар становится фу.php?бар.html

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

644   2  

2 ответов:

Будет ли побег ? как %3F сделать трюк?

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

Comments

    Ничего не найдено.