通過修改.htaccess批量實(shí)現(xiàn)網(wǎng)站內(nèi)頁301重定向跳轉(zhuǎn)
網(wǎng)站死鏈有時候是不可避免的,網(wǎng)站欄目頁或者文章內(nèi)頁因?yàn)槟承┰蛘{(diào)整了路徑,如果想保留之前的鏈接就需要做301跳轉(zhuǎn)。網(wǎng)站首頁的301重定向容易做,不過內(nèi)頁的301就相對復(fù)雜一些,通過修改.htaccess文件可以輕松完成這項(xiàng)工作。
htaccess文件是Apache服務(wù)器中的一個配置文件,它負(fù)責(zé)相關(guān)目錄下的網(wǎng)頁配置。通過htaccess文件,可以幫我們實(shí)現(xiàn):網(wǎng)頁301重定向、自定義404錯誤頁面、改變文件擴(kuò)展名、允許/阻止特定的用戶或者目錄的訪問、禁止目錄列表、配置默認(rèn)文檔等功能。在LINUX主機(jī)FTP文件中都會有一個.htaccess配置文件用來設(shè)置偽靜態(tài)規(guī)則,本文主要介紹如何通過正則表達(dá)式實(shí)現(xiàn)批量內(nèi)頁跳轉(zhuǎn)。午夜電影網(wǎng)
在寫之前我們先來認(rèn)識幾個簡單的符號所代表的含義
1、(.+) 代表任意字符(包括漢字、英文字母等)
2、(\d+)代表是任意數(shù)字(僅僅是阿拉伯?dāng)?shù)字)
3、$1、 $2 、$3 、$4表示的是對前面出現(xiàn)的變量的引用(你理解這個意思就行了)
一、簡單的數(shù)字形式鏈接跳轉(zhuǎn)
例如:
http://www.xiaomseo.com/2016/12/24/seo/ 重定向 為 http://www.xiaomseo.com/seo.html
說明:
http://www.xiaomseo.com/%year%/%monthnum%/%day%/%postname%/
http://www.xiaomseo.com/%postname%.html
/%year%/%monthnum%/%day%這個路徑表示的意思是“年、月、日”3層路徑,%postname%是名稱?,F(xiàn)在需要去掉“年、月、日”這幾個多余的層級,變成http://www.xiaomseo.com/%postname%.html這種形式。
重定向語句:3d膽碼
-
RedirectMatch 301 ^/([0-9]+)/([0-9]+)/([0-9]+)/(.*)/$ /$4.html
解釋:
RedirectMatch 301 ^可以認(rèn)為是規(guī)則的開始;
中間的三個([0-9]+)分別代表數(shù)字“%year%、%monthnum%、%day%”;
(.*)代表最后文章的名稱或者ID即“%postname%”;
這四個變量可以賦予編號$1、 $2 、$3 、$4,(.*)和$4.html中間的$可以理解為新老網(wǎng)址的連接符號(注意:$ /$4.html這個符號$和后面的/之間有空格)。
我們要做的就是前面的日期都不要,只留最后的文章名,然后在結(jié)尾后面加上.html,所以修改后前面的三個([0-9]+)都不要,只保留最后的(.*),通過下圖我們知道(.*)代表$4,所以后面的規(guī)則只需寫上$4.html就行了。
二、字符形式類鏈接跳轉(zhuǎn)
1、例如:http://www.xiaomseo.com/123 重定向?yàn)?/em> http://www.xiaomseo.com/seo/123.html
說明:股票配資
http://www.xiaomseo.com/%id%
http://www.xiaomseo.com/%postname%/%id%.html
重定向語句:
-
RedirectMatch 301 ^/(\d+)$ /(.*)/$1.html
解釋:
前面我們說過(\d+)代表是任意數(shù)字,所以前面的數(shù)字變量“%id%”可以寫成(\d+);
“%postname%”是名稱肯定是字符,而任意字符(包括漢字、英文字母等)對應(yīng)的表示符號是(.*);
其中數(shù)字變量“%id%”即(\d+)對應(yīng)的編號是$1,我們需要做的是在舊的文章鏈接的數(shù)字ID前面加一個分類名稱,所以前面變量的表示方式為/(\d+),后面的可以寫成/(.*)/$1.html,再在它們之間加一個鏈接符號$就行了。
2、
http://www.xiaomseo.com/postname/lizi/ 重定向為 http://www.xiaomseo.com/postname/lizi.html
重定向語句:
-
RedirectMatch 301 ^/(.*)/(.*)/$ /$1/$2.html
3、http://www.xiaomseo.com/lizi/ 重定向?yàn)?/span> http://www.xiaomseo.com/archives/lizi.html
重定向語句:
-
RedirectMatch 301 ^/(.*)/$ /archives/$1.html
4、http://www.xiaomseo.com/lizi 重定向?yàn)?/span> http://www.xiaomseo.com/lizi.html
重定向語句:
-
RedirectMatch 301 ^/(.*)$ /$1.html
寫重定向語句時注意哪些方面:
首先你要弄清楚自己原網(wǎng)址中需要改變的部分是什么形式,是數(shù)字還是字母,然后在重定向語句前面的部分用正則表達(dá)式對應(yīng)的符號來表示,(.+) 代表任意字符(包括漢字、英文字母等),(\d+)代表是任意數(shù)字(僅僅是阿拉伯?dāng)?shù)字),然后在語句后面分別用對應(yīng)符號$1、 $2 、$3 、$4、$5..表示,最后用鏈接符號$,來鏈接新舊網(wǎng)址。
注意:連接符號$和后面的新網(wǎng)址之間有一個空格,而且,如果原網(wǎng)址最后有/的話,在$之前也必須有一個/。
三、代碼放置位置
上面的代碼可以放在這段代碼中間或者之外,比如這樣:
-
RedirectMatch 301 ^/(\d+)$ /$1.html
-
# BEGIN WordPress
-
-
RewriteEngine On
-
Rewriteba
-
RewriteRule ^index\.php$ - [L]
-
RewriteCond %{REQUEST_FILENAME} !-f
-
RewriteCond %{REQUEST_FILENAME} !-d
-
RewriteRule . /index.php [L]
-