如何从.htaccess中的重定向URL中删除字符?

时间:2018-11-10 22:51:07

标签: regex .htaccess redirect

我最近注意到.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只是以有效的响应来响应,即它找不到与字符串的匹配项,所以这并不是灾难性的,但是它在地址栏中不是很漂亮,我希望它可以为我自己正常工作满足。

那么-有人可以建议重定向的方式,这种方式会丢失结尾的随机字符串吗?谢谢!

1 个答案:

答案 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]

祝你好运!