重写吃GET变量 - QSA规则不起作用

时间:2017-02-04 23:08:06

标签: php apache .htaccess get

这是我的.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]是解决方案,但对我来说似乎不是。

1 个答案:

答案 0 :(得分:1)

这不是你的RewriteRule引起的问题。你可以删除QSA。这仅适用于您修改查询字符串的情况,而您不是。您的查询字符串正在通过未修改的传递。

将您的RewriteRule更改为:

RewriteRule !^pages/ pages%{REQUEST_URI} [L]

删除已经由mod_rewrite提供的QSA和正斜杠,所以不要加倍。

删除查询字符串必须是其他规则或其他内容。