是否有htaccess规则将两个具有不同参数的相同url重定向到具有其他参数的另一个相同url



我有两个URL'/封面字母/abcd/'和'/封面信件/abcd/amp',并希望将其分别重定向到'/封面信函/examples/maintenance/xyz'和'/coverletter/examples/maintenance/xyz/amp'。

它可以通过一个单独的htaccess 301重定向规则来完成吗?或者还有其他方法吗?

我已经尝试了StackOverflow上给出的所有解决方案。请建议解决方案

一般来说,在WordPress/PHP中执行会给你带来更大的灵活性和控制力,但你必须等待一堆PHP代码才能执行,这可能不太好/理想。因此,如果可以避免的话,.htaccess文件是最好的选择。你的问题是关于你是否可以在.htaccess中完成的,下面是你的方法:

RedirectMatch 301 (/?)cover-letters/abcd(/?)([^/]*) $1cover-letter/examples/maintenance/xyz$2$3

然而,这也是一些你可能不想或不能使用.htaccess的原因/场景。这有点偏离主题,但值得注意。


既然你在问题中标记了WordPress,你也可以安装https://wordpress.org/plugins/redirection/。这是一个非常容易使用,做得很好的重定向插件。我一直在使用它,并强烈推荐它。


编辑评论中的问题

为了针对查询字符串进行测试,您需要使用mod_rewrite模块。mod_alias模块(用于原始答案(不支持查询字符串查找。您需要执行以下操作:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^(abcd)$
RewriteRule ^(.*?)(/?)$ $1/%0 [R=301,QSD,L]

最新更新