.htaccess重定向特定的URL结构

时间:2016-09-06 08:45:37

标签: apache .htaccess redirect

我有以下网址:

https://www.site-a.xyz/tutorials/post-name/2

我需要它重定向到以下网址

https://www.site-b.xyz/post-name/2

基本上如果URL有一个尾随数字元素(在本例中为/2),我需要删除URL的/tutorials/部分。

注意:仅在有追踪号码的情况下

1 个答案:

答案 0 :(得分:1)

www.site-a.xyz的.htaccess文件顶部附近尝试以下(使用mod_rewrite):

RewriteEngine On
RewriteRule ^tutorials/([^/]+/\d+)$ https://www.site-b.xyz/$1 [R=302,L]

在这种情况下,尾随“数字”可以是1位或更多位。如果它只是一个数字(如您的示例中所示),那么应该简化(将\d+更改为\d)。 $1是对RewriteRule 模式中捕获的组的反向引用。

请注意,这是302(临时)重定向,如果这是永久性的,那么当您确定它正常工作时,请更改为301。 301s由浏览器缓存,因此可能会使测试出现问题。

更新:要在源网址上允许可选尾随斜杠,请在/?模式的末尾附近添加RewriteRule,例如这样:

RewriteRule ^tutorials/([^/]+/\d+)/?$ https://www.site-b.xyz/$1 [R=302,L]

这可以从重定向目标中删除可选的尾部斜杠。 (从而避免任何重复的内容问题。)