QQ在線客服

當(dāng)前位置:首頁> 建站> 經(jīng)驗(yàn)心得

通過修改.htaccess批量實(shí)現(xiàn)網(wǎng)站內(nèi)頁301重定向跳轉(zhuǎn)

2019-07-17 10:25 來源: qclog 瀏覽(799)人   

網(wǎng)站死鏈有時候是不可避免的,網(wǎng)站欄目頁或者文章內(nèi)頁因?yàn)槟承┰蛘{(diào)整了路徑,如果想保留之前的鏈接就需要做301跳轉(zhuǎn)。網(wǎng)站首頁的301重定向容易做,不過內(nèi)頁的301就相對復(fù)雜一些,通過修改.htaccess文件可以輕松完成這項(xiàng)工作。

通過修改.htaccess實(shí)現(xiàn)網(wǎng)站內(nèi)頁301重定向跳轉(zhuǎn)

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膽碼

  1. 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就行了。

通過修改.htaccess實(shí)現(xiàn)網(wǎng)站內(nèi)頁301重定向跳轉(zhuǎn)

二、字符形式類鏈接跳轉(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

重定向語句:

  1. RedirectMatch 301 ^/(\d+)$ /(.*)/$1.html  

解釋:

前面我們說過(\d+)代表是任意數(shù)字,所以前面的數(shù)字變量“%id%”可以寫成(\d+);

“%postname%”是名稱肯定是字符,而任意字符(包括漢字、英文字母等)對應(yīng)的表示符號是(.*);

其中數(shù)字變量“%id%”即(\d+)對應(yīng)的編號是$1,我們需要做的是在舊的文章鏈接的數(shù)字ID前面加一個分類名稱,所以前面變量的表示方式為/(\d+),后面的可以寫成/(.*)/$1.html,再在它們之間加一個鏈接符號$就行了。

20160117182213

2、

http://www.xiaomseo.com/postname/lizi/ 重定向為 http://www.xiaomseo.com/postname/lizi.html

重定向語句:

  1. RedirectMatch 301 ^/(.*)/(.*)/$ /$1/$2.html  

3、http://www.xiaomseo.com/lizi/ 重定向?yàn)?/span>  http://www.xiaomseo.com/archives/lizi.html

重定向語句:

  1. RedirectMatch 301 ^/(.*)/$ /archives/$1.html  

4、http://www.xiaomseo.com/lizi 重定向?yàn)?/span> http://www.xiaomseo.com/lizi.html

重定向語句:

  1. 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)址最后有/的話,在$之前也必須有一個/。

三、代碼放置位置

上面的代碼可以放在這段代碼中間或者之外,比如這樣:

  1. RedirectMatch 301 ^/(\d+)$ /$1.html  

  2. # BEGIN WordPress  

  3. RewriteEngine On  

  4. Rewriteba

  5. RewriteRule ^index\.php$ - [L]  

  6. RewriteCond %{REQUEST_FILENAME} !-f  

  7. RewriteCond %{REQUEST_FILENAME} !-d  

  8. RewriteRule . /index.php [L]  

  9.   

【版權(quán)與免責(zé)聲明】如發(fā)現(xiàn)內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息發(fā)郵件至 kefu@2898.com ,我們將及時溝通與處理。 本站內(nèi)容除了2898站長資源平臺( www.afrimangol.com )原創(chuàng)外,其它均為網(wǎng)友轉(zhuǎn)載內(nèi)容,涉及言論、版權(quán)與本站無關(guān)。
投稿

關(guān)注我們

站長資源平臺微信公眾號

微信二維碼