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 interprets 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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With