充分利用rewrite偽靜態(tài)規(guī)則實(shí)現(xiàn)dedecms站點(diǎn)變更url
充分利用rewrite 偽靜態(tài)規(guī)則實(shí)現(xiàn)dedecms 站點(diǎn)301變更url前些日為了變換網(wǎng)站的目錄結(jié)構(gòu)用到rewrite 規(guī)則實(shí)現(xiàn)301轉(zhuǎn)向,現(xiàn)在做個(gè)記錄,并分享給可能有根我一樣需求的站長(zhǎng)朋友們。站長(zhǎng)
充分利用rewrite 偽靜態(tài)規(guī)則實(shí)現(xiàn)dedecms 站點(diǎn)301變更url
前些日為了變換網(wǎng)站的目錄結(jié)構(gòu)用到rewrite 規(guī)則實(shí)現(xiàn)301轉(zhuǎn)向,現(xiàn)在做個(gè)記錄,并分享給可能有根我一樣需求的站長(zhǎng)朋友們。
站長(zhǎng)有時(shí)候會(huì)重新布局網(wǎng)站的架構(gòu)和目錄層次,但是以前的URL 已經(jīng)使用很久,如何能不影響原來(lái)使用的url ,并啟用新的url 呢?
那么就要使用url 轉(zhuǎn)向了。偽靜態(tài)確實(shí)很好用。筆者前些時(shí)間調(diào)整了目錄結(jié)構(gòu)就必須要使原來(lái)的url 不受影響,并同時(shí)啟用新的url 。
下面以我的實(shí)際操作過(guò)程為例介紹如下。
網(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)重新生成靜態(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]
//實(shí)現(xiàn)news/2/目錄下任意靜態(tài)網(wǎng)址跳轉(zhuǎn)到新的url
RewriteRule ^/news/a /a [L,RP]
RewriteRule ^/news/b /b [L,RP]
//實(shí)現(xiàn)news/a轉(zhuǎn)向到新的目錄,注意這個(gè)必須要設(shè),不然當(dāng)用戶以http://www.25918.cn/news/a 這樣的url 訪問(wèn)時(shí)候,會(huì)404錯(cuò)誤,找不到,設(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] //實(shí)現(xiàn)news/a/目錄下文章列表的301轉(zhuǎn)向
這是在同一主機(jī)空間下url 目錄301規(guī)則,同理我們也可以實(shí)現(xiàn)跨域名的url 轉(zhuǎn)向比如原bbs 地址為http://www.25918.cn/bbs/,現(xiàn)在想實(shí)現(xiàn)以bbs.25918.cn 二級(jí)域名的形式訪問(wèn)。
規(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ī)則實(shí)現(xiàn)bbs 目錄下任意url 跳轉(zhuǎn)到新的地址