开发者

apache, allow filenames with '?'

I want to make a static copy of a site, retaining existing URLs. The problem is that the URLs looked like:

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

and Apache does not want to find the file "index.php?id=XXX". Instead, it int开发者_开发技巧erprets the request as the file "index.php" with the query "id=XXX".

How can I ask Apache to stop handling the question mark?


Finally, my solution:

1) rename the files from "index.php?id=XXX" to "index.php_id=XXX"

2) Add to .htaccess:

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


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

If you list the file in a directory that has indexes on, Apache will correctly generate links of this format. You must, however, rewrite the links in the existing pages.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜