2016-09-06 53 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