很抱歉问一个如此琐碎的问题,但是我在RewriteRule文档中找不到答案。我在这里想念应该很简单...
我需要重定向
/index.php/component/users/?view=login
到
/index.php
如果URL匹配“ view = login”
我尝试了
RewriteRule ^((.*)\?view=login(.*))$ /index.php? [R,L]
,尽管在www.regextester.com或www.regexpal.com上进行了测试却显示匹配,但该方法不起作用
与此同时,匹配子字符串“ users”可以很好地使用
RewriteRule ^(.*)/users(.*)$ /index.php? [R,L]
我的正则表达式匹配“ view-login”是什么问题?为什么它不能在测试仪上工作,而不能在实时站点上工作?
谢谢!
更新 我设法使用RewriteCond和RewriteRule使其工作:
RewriteCond %{QUERY_STRING} login
RewriteRule ^(.*)$ /? [R,L]
我仍然不明白为什么单个RewriteRule不能匹配“?”之后的字符串。它仅适用于字符串“?”之前的部分。
如果有人可以解释,我将不胜感激。谢谢!