重写 QSA,更好地理解它

Rewrite QSA, understanding it better

所以,我很难理解 QSA。自

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

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

目前我有 url

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

哪个return

hey i'm a search query&SortBy=day

我可以设置为

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

这将成功 return 获取参数,但根据我对 QSA 的了解,它应该会自动处理...对吗?

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

基本上,我的问题是,我为什么要使用 QSA?在这种情况下它会提供什么样的好处? (不好意思说的太直白了,我没看懂)

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

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

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