充分利用rewrite偽靜態(tài)規(guī)則實現(xiàn)dedecms站點變更url
充分利用rewrite 偽靜態(tài)規(guī)則實現(xiàn)dedecms 站點301變更url前些日為了變換網(wǎng)站的目錄結(jié)構(gòu)用到rewrite 規(guī)則實現(xiàn)301轉(zhuǎn)向,現(xiàn)在做個記錄,并分享給可能有根我一樣需求的站長朋友們。站長
充分利用rewrite 偽靜態(tài)規(guī)則實現(xiàn)dedecms 站點301變更url
前些日為了變換網(wǎng)站的目錄結(jié)構(gòu)用到rewrite 規(guī)則實現(xiàn)301轉(zhuǎn)向,現(xiàn)在做個記錄,并分享給可能有根我一樣需求的站長朋友們。
站長有時候會重新布局網(wǎng)站的架構(gòu)和目錄層次,但是以前的URL 已經(jīng)使用很久,如何能不影響原來使用的url ,并啟用新的url 呢?
那么就要使用url 轉(zhuǎn)向了。偽靜態(tài)確實很好用。筆者前些時間調(diào)整了目錄結(jié)構(gòu)就必須要使原來的url 不受影響,并同時啟用新的url 。
下面以我的實際操作過程為例介紹如下。
網(wǎng)站原先的目錄結(jié)構(gòu)是這樣的(方便打字,以A 為例)news/a/1/,news/b/2/,news/c/3/,現(xiàn)在我要把A 、B 目錄直接放到網(wǎng)站根目錄, C 目錄保持不便。html 文件全部生成靜態(tài)的文件。后臺重新生成靜態(tài)文件到a/1/,b/2/,然后啟用rewrite 規(guī)則(服務(wù)器虛支持)。
筆者所用為windows 服務(wù)器,新建httpd.ini 文件,建立以下規(guī)則:
RewriteRule ^/news/a/1/([0-9] ).html$ /a/1/$1.html [L,RP]
RewriteRule ^/news/b/2/([0-9] ).html$ /b/2/$1.html [L,RP]
//實現(xiàn)news/2/目錄下任意靜態(tài)網(wǎng)址跳轉(zhuǎn)到新的url
RewriteRule ^/news/a /a [L,RP]
RewriteRule ^/news/b /b [L,RP]
//實現(xiàn)news/a轉(zhuǎn)向到新的目錄,注意這個必須要設(shè),不然當(dāng)用戶以http://www.25918.cn/news/a 這樣的url 訪問時候,會404錯誤,找不到,設(shè)了之后就可以直接跳轉(zhuǎn)到新url
RewriteRule ^/news/a/list_([0-9] )_([0-9] ).html$ /a/list_$1_$2.html [L,RP] RewriteRule ^/news/b/list_([0-9] )_([0-9] ).html$ /b/list_$1_$2.html [L,RP] //實現(xiàn)news/a/目錄下文章列表的301轉(zhuǎn)向
這是在同一主機空間下url 目錄301規(guī)則,同理我們也可以實現(xiàn)跨域名的url 轉(zhuǎn)向比如原bbs 地址為http://www.25918.cn/bbs/,現(xiàn)在想實現(xiàn)以bbs.25918.cn 二級域名的形式訪問。
規(guī)則可以如下,放在原論壇空間內(nèi)
RewriteRule ^/bbs http://bbs.25918.cn/ [L,RP]
//此條規(guī)則同樣是讓目錄鏈接跳轉(zhuǎn)到新的url
RewriteRule ^/bbs/(.*)$ http://bbs.25918.cn/$1 [L,RP]
//此條規(guī)則實現(xiàn)bbs 目錄下任意url 跳轉(zhuǎn)到新的地址