2016-09-06 104 views
0

重定向我有以下网址:的.htaccess特定URL结构

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

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

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

本质上如果有一个尾随数字元素的URL (在这种情况下为/2)我需要删除URL的/tutorials/部分。

注:仅当有一个尾随数字

+0

'site-a'和'site-b'托管在同一个文件系统上吗?还是完全分开? – MrWhite

+1

完全独立 – richelliot

回答

1

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

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

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

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

UPDATE:为了允许在源URL的可选斜线然后添加/?靠近RewriteRule图案的端部,如下所示:

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

从该notatably条的可选结尾的斜线重定向目标。 (因此避免了任何重复的内容问题。)

+0

您的回答非常好 - 但如果我的网址带有斜线,该怎么办?即 - https://www.site-a.xyz/tutorials/post-name/2/ – richelliot

+0

由于某种原因,我不能添加一个尾部的斜杠到上面的URL - 但我希望你明白我的意思! – richelliot

+0

上述指令不允许有斜线(只是一个“尾数”,正如您的问题所述)。我已经更新了我的答案,以允许使用_optional_尾部斜线。 – MrWhite