重写QSA,更好地理解它

时间:2016-01-16 00:47:05

标签: .htaccess rewrite

所以,我很难理解QSA。由于

RewriteRule ^search/(.*)$ search.php?s=$1 [NC,L,B,QSA]
RewriteRule ^search/(.*)$ search.php?s=$1 [NC,L,B]

两者都给我相同的结果。我读到QSA附加了所有传递的参数(至少我认为这是我从中理解的)。然而,它并不适合我。

目前我有网址

http://localhost:8888/search/hey+i%27m+a+search+query&SortBy=day

返回

hey i'm a search query&SortBy=day

我可以将其设置为

RewriteRule ^search/(.*)&SortBy=(.*)$ search.php?s=$1&SortBy=$2 [NC,L,B,QSA]

会成功返回get参数,但是根据我对QSA的理解,它应该自动处理......对吗?

我从这里得到了我的信息 - What does $1 [QSA,L] mean in my .htaccess file?

基本上,我的问题是,我为什么要使用QSA?在这种情况下它会带来什么样的好处? (抱歉直言不讳,但我无法很好地掌握这一点)

1 个答案:

答案 0 :(得分:2)

问题是您的示例网址没有查询字符串。您使用?指定查询字符串:

http://localhost:8888/search/hey+i%27m+a+search+query?SortBy=day

?SortBy=day将通过QSA标志自动附加到重写的查询字符串中。