Есть ли способ заставить Apache обслуживать файлы с вопросительным знаком в их названии?
Я соскоблил кучу страниц с помощью wget-m-k-E. полученные файлы имеют имена в виде foo.php?бар.формат html. Апач все угадывает после того, как ? есть ли строка запроса, есть ли способ сказать ей, чтобы она игнорировала ? в качестве разделителя строки запроса (см.php?бар.html как запрошенный файл, а не foo.в PHP)?
Чтобы сэкономить вам поездку в wget manpage:
-m: зеркало рекурсивно
- Э : фу.php?бар становится фу.php?бар.html
- k: преобразование ссылок в страницы (foo.php?бар теперь ссылки на foo.php?бар.html внутри всех страниц, чтобы они отображались правильно)
2 ответов:
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