2017-07-03 60 views
0

我有一個新的網站,需要301箇舊網頁,也有一些路徑重寫規則和301結尾沒有斜槓

新的網站產品頁面例如URL http://www.mywebsite.com/en/section/nice-url-name_123.html 此網址添加個性化網址我需要抓住的部分,名稱和ID

這是我的原則

RewriteRule ^en/([^_]+)/([^_]+)_([0-9]+).html /en/$1/detail.php?name=$2&id=$3 [L] 

這工作得很好

在以前版本的網站,它們用這種URL格式

http://www.mywebsite.com/en/section/nice-url-name

我不能找到一個辦法攔截此URL,並重定向到我的新地址,身份證丟失,可以是0

所以它應該成爲 http://www.mywebsite.com/en/section/nice-url-name_0.html

,因爲我便無法找到一種方法,我嘗試URL添加trailling斜線

RewriteCond %{REQUEST_URI} !\.(php|html?|jpg|png|gif|ttf|ttf)$ 
RewriteRule ^(.*[^/])$ /$1/ [L,R=301] 

,然後試圖通過部分

RewriteRule ^en/section1/([^_]+)/ /it/301.php?redirectd=section1&name=$1 [L] 

趕上他們節我無法找到任何其他方式沒有無限循環301結束 但這種方式我需要排除我所有的擴展否則Apache會加斜線在圖像,字體,PDF格式的末等

+0

爲什麼'([^ _] +)'每個ERE? '([^ /] +)'對於該部分更合理嗎? – arkascha

+0

爲什麼你不能匹配'/ en/section/nice-url-name'?看起來很直截了當,我不需要重寫。 – arkascha

+0

你能舉個例子嗎? – al404IT

回答

1

要回答你的聲明「我無法找到一個方法來截獲此網址...」我想繼續沿着這條建議的內容:

RewriteEngine on 
RewriteRule ^/?en/([^/]+)/([^\./]+)$ /en/301.php?redirected=1&section=$1&name=$2 [L] 
相關問題