所以,我很难理解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?在这种情况下它会带来什么样的好处? (抱歉直言不讳,但我无法很好地掌握这一点)
答案 0 :(得分:2)
问题是您的示例网址没有查询字符串。您使用?
指定查询字符串:
http://localhost:8888/search/hey+i%27m+a+search+query?SortBy=day
?SortBy=day
将通过QSA
标志自动附加到重写的查询字符串中。