重定向我有以下网址:的.htaccess特定URL结构
https://www.site-a.xyz/tutorials/post-name/2
我需要它重定向到以下网址
https://www.site-b.xyz/post-name/2
本质上如果有一个尾随数字元素的URL (在这种情况下为/2
)我需要删除URL的/tutorials/
部分。
注:仅当有一个尾随数字
重定向我有以下网址:的.htaccess特定URL结构
https://www.site-a.xyz/tutorials/post-name/2
我需要它重定向到以下网址
https://www.site-b.xyz/post-name/2
本质上如果有一个尾随数字元素的URL (在这种情况下为/2
)我需要删除URL的/tutorials/
部分。
注:仅当有一个尾随数字
试试下面的(使用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条的可选结尾的斜线重定向目标。 (因此避免了任何重复的内容问题。)
您的回答非常好 - 但如果我的网址带有斜线,该怎么办?即 - https://www.site-a.xyz/tutorials/post-name/2/ – richelliot
由于某种原因,我不能添加一个尾部的斜杠到上面的URL - 但我希望你明白我的意思! – richelliot
上述指令不允许有斜线(只是一个“尾数”,正如您的问题所述)。我已经更新了我的答案,以允许使用_optional_尾部斜线。 – MrWhite
'site-a'和'site-b'托管在同一个文件系统上吗?还是完全分开? – MrWhite
完全独立 – richelliot