我最近注意到.htaccess重定向中的一个小问题,我找不到修复程序。 我正在重定向成千上万个表单的链接
“ example.com/tinc?key= {大量随机字符,等等}”
并将它们重新指向:
“ example.com/search.php”
以下.htaccess命令可以正常工作:
"RedirectMatch 301 ^/tinc.*$ example.com/search.php"
...除了我只是意识到实际上所做的就是将用户发送到
example.com/search.php?key= {大量随机字符,等等}
我认为 .htaccess脚本将用户定向到新的特定URL,但实际上只是用新的URL替换了原始URL的第一部分。
因为search.php只是以有效的响应来响应,即它找不到与字符串的匹配项,所以这并不是灾难性的,但是它在地址栏中不是很漂亮,我希望它可以为我自己正常工作满足。
那么-有人可以建议重定向的方式,这种方式会丢失结尾的随机字符串吗?谢谢!
答案 0 :(得分:0)
我看不出问题出在哪里,但要更加明确,定义多个规则可能会有所帮助:
RedirectMatch 301 ^example.com/tinc$ example.com/search.php
RedirectMatch 301 ^example.com/tinc\?key=.*$ example.com/search.php
如果这不起作用,则假设您唯一的GET参数是key
,则可以尝试使用此RewriteCond
。
RewriteCond %{QUERY_STRING} ^key=.*$
RewriteRule ^example.com/tinc$ example.com/search.php [L,R=301]
祝你好运!