这是我的.htaccess文件。 重写是有效的,但是GET变量会丢失。
RewriteCond %{HTTP_HOST} ^(www\.)?dev.my-domain\.de$ [NC]
RewriteRule !^pages/ /pages%{REQUEST_URI} [QSA,L]
ErrorDocument 404 /404.php
所以我https://my-domain.com/badPath?ID=666可见,但
print_r($_GET);
说:Array()
互联网一直在告诉我[QSA]是解决方案,但对我来说似乎不是。
答案 0 :(得分:1)
这不是你的RewriteRule引起的问题。你可以删除QSA。这仅适用于您修改查询字符串的情况,而您不是。您的查询字符串正在通过未修改的传递。
将您的RewriteRule更改为:
RewriteRule !^pages/ pages%{REQUEST_URI} [L]
删除已经由mod_rewrite提供的QSA和正斜杠,所以不要加倍。
删除查询字符串必须是其他规则或其他内容。