您現在的位置是:首頁 > PHP正則

htaccess實現301重定向正則表達式

李清波2014-06-26PHP正則

    詳細的步驟我就不在這里一一說說了,簡單的列一些說明,讓大家大概知道每一個通配符是干嘛的,大家知道就行了。


下面還是以我的網站:http://www.rnvazd.tw來做例子


(.+) 對應的是任意字符(包括漢字、英文字母等)

(\d+)對應的是任意數字(僅僅是阿拉伯數字)

$1 $2 $3 是前面出現過的變量的再次引用(相當于參數)


重定向語句:

示例一:

RedirectMatch 301 ^/index\.php/News/show/aid/(\d+)$ /news/aid-$1.html


訪問:http://www.rnvazd.tw/index.php/News/show/aid/1

跳轉:http://www.rnvazd.tw/news/aid-1.html


這里的地址,前面為舊地址,后面為跳轉的目標地址。

(\d+)為參數(數字)

$1為目標地址的參數(自動匹配)


示例二:

RedirectMatch 301 ^/news/(\d+)/(\d+)\_(\d+)\.html$ /news/aid-$2.html

訪問:http://www.rnvazd.tw/news/201406/888_1.html

跳轉:http://www.rnvazd.tw/news/aid-888.html


示例一和示例二差不多,不一樣的是示例二有多個(\d+)數字目錄。

而我們如何來匹配真正的參數,而不是數字目錄呢。

按照$1,$2,$3來區分,每一個(\d+)對應的是一個$和相應的數字。

比如示例二,如果中間那個(\d+)為參數的話,aid-后面應該寫著$2來對應



(.*)可以理解為最后的文章名稱或者ID,

這四個變量分別可以賦予編號$1,$2,$3,$4。

(.*)和$4.html之間的那個$可以理解為老網址和新網址之間的分割。


注意,$和后面的新網址之間有一個空格。而且,如果原網址最后有/的話,在$之前也必須有一個/


轉載注明來源:http://www.liqinbo.cn/


評論