重写 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
标志自动附加到重写的查询字符串中。
所以,我很难理解 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
标志自动附加到重写的查询字符串中。