做到網站,總會接觸到偽靜態這個概念,不管是主動的還是被動的,都是逃避不了的。偽靜態有其妙用,不需要每次都生成大量的文件,也能實現良好的SEO效果,是很多站點的首選,但是偽靜態規則卻不是很好把握的,至少很多草根站長跟361源碼多次提及過偽靜態完全看不懂,更不要說書寫規則了,其實這里361源碼要稍微八卦一下:要不怎么說微軟牛呢,就是要跟別人不一樣,每次改變就是很大。從以前的IIS6用的偽靜態規則,到IIS7.5的,完全來了個顛覆,給我們留下很大的技術隱患,大坑啊!
好了閑話不多少了,上正題:偽靜態規則大致可以分為:httpd.ini、.htaccess、httpd.conf、web.config 四種格式。我們今天就以一條普通的測試題目來給大家講解一下偽靜態規則的書寫方法。
題目為:http://www.xxx.com/good-100.html 對應 http://www.xxx.com/good.php?id=100,做一個偽靜態規則
[ISAPI_Rewrite]CacheClockRate 3600RepeatLimit 32# 前邊可以忽略,是關于緩存之類的定義RewriteRule ^(.*)/good-(.+)/.html$ $1/good/.php/?id=$2
RewriteEngine on<IfModule mod_rewrite.c># 前邊可以忽略,是關于緩存之類的定義RewriteRule ^(.*)/good-(.*)/.html$ $1/good/.php/?id=$2</IfModule>
這個要分成兩種情況寫:一種是西部數碼的綠色版本的偽靜態組件,幾乎和.htaccess的文件一樣,而且還可以引用httpd.conf之后不在這個里邊寫,而是在網站根目錄里寫,這里就不介紹了。
另外一種情況,就是Nginx的服務器,規則就不一樣,這里寫一下:
location / {rewrite ^([^/.]*)/good-(.+)/.html$ $1/good.php?id=$2 last;}這里邊重要的就是最后那個last,其他方面的可以參照我寫的這個,其實跟其他的http.ini和.htaccess差不多。
<?xml version=”1.0″ encoding=”UTF-8″?><configuration><system.webServer><rewrite><rules><rule name=”weijingtai”><match url=”^(.*/)*good-(.+).html/?*(.*)$” /><action type=”Rewrite” url=”{R:1}/good.php/?id={R:2}” /></rule></rules></rewrite></system.webServer></configuration>1、偽靜態書寫其實并不是很難。各種規則的大致原理都是一樣的:用正則表達式進行頁面一對一匹配。只是不同的規則寫法稍微不懂而已,比如Nginx后邊加個last,IIS7,5的就是XML格式,不是一行一個規則。大家多多嘗試其實就能掌握。
2、偽靜態規則學好了,可以有很多妙用,大家可以參考《偽靜態實現301永久重定向、302臨時重定向、404頁面配置等方法》。
3、偽靜態規則與服務器環境關系比較大,搞明白自己的服務器偽靜態組件是什么再下手。當然了,有必要的時候都上361源碼網轉轉還是很有好處好幫助的。嘿嘿!
新聞熱點
疑難解答