我无法通过此代码...我需要捕获请求,但使用此代码我可以重定向,但无法找到特定的搜索页面。
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /searcha\.php\?name=(www\.)?([^/\ ]+)[^\ ]*\ HTTP/
RewriteRule ^.*$ http://www.mydomain.com/%2? [R=301,L]
有人能告诉我我错过了什么吗?
答案1
在您的 RewriteRule 中,您没有捕获任何内容,但随后您引用了 %2...? RewriteRule 不会对从 RewriteCond 中的正则表达式捕获的数据进行操作。
更新:实际上,现在我更仔细地阅读了您的代码,看起来您不需要 RewriteCond。如果您只是想将一个 URL 重写为另一个 URL,您可以执行以下操作:
RewriteRule ^searcha\.php\?name=(www\.)?([^/\ ]+)[^\ ]* http://www.mydomain.com/%2 [R=301,L]
(您可能需要对该正则表达式进行进一步调整,因为我不确定您要匹配什么)