什麼是UrlRewrite?
UrlRewrite 是 將靜態頁面轉換爲動態頁面的一種技術. 例如.您網站頁面是 http://www.yourdomain.com/news/docread.aspx?id=123 使用UrlRewrite轉換後 可以 以 http://www.yourdomain.com/news/123.html 來訪問.
UrlRewrite的用處: 滿足搜索引擎的要求,google可以抓取動態頁面,但是google對動態頁面的評分一般低於靜態頁面.
UrlRewrite 對IIS 服務器和Apache服務器有不同的設置. 兩種配置方法不同. 請廣大用戶千萬注意.
Apache服務器設置: 您需要在網站根目錄創建 .htaccess 文件.編寫規則.
IIS 服務器設置: 您需要在網站根目錄創建 httpd.ini 的配置文件, 編寫規則.
由於 IIS下的httpd.ini和 Apache的.htaccess 文件 是兩種完全不同的配置方式.兩個不能互換使用. 編寫URLReWrite 需要專業的技術人員.
如何對IIS服務器的網站 進行UrlRewrite的設置?
注意 使用URlRewrite 不能開啓 網站自定義 404錯誤,否則 UrlRewrite將無法正常工作
isapi_rewrite利用正則表達式進行替換規則的表示。
您需要在您網站根目錄 建立一個 httpd.ini 的配置文件,裏面有UrlRewrite配置信息.
以下是httpd.ini 的內容
[ISAPI_Rewrite]
# 3600 = 1 hour 設置緩存時間 1個小時
CacheClockRate 3600
# 設置正則表達式 替換變量個數.
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files from accessing through HTTP
# 以下UrlRewrite規則是爲避免 網站的 httpd.ini httpd.errors 之類配置文件被下載.
RewriteRule ^/httpd(?:\.ini|\.parse\.errors).* [F,I,O]
# 正式URLRewrite規則 ,意思是 http://server/123.html 都將訪問 動態頁面 http://server/urlrwtest.asp?id=123
# 您需要根據您網站需要進行更改
RewriteRule /([0-9]*).html /urlrwtest.asp\?id=$1
#----------------- httpd.ini 文件內容結束-----------
urlrwtest.asp 文件 示例:
<%response.write "URLRewrite 測試:你訪問的ID號 是:" & request("id")%>
文件保存後即可生效.
URLrewrite 支持 asp,asp.net,php 等各種腳本.
UrlRewrite 常見錯誤
1. 404錯誤(頁面無法找到):沒有網站根目錄建立Httpd.ini 文件 或者 正則表達式 錯誤,都會導致 頁面無法找到錯誤
2. 500錯誤(腳本程序錯誤): 目標動態頁面程序錯誤
3. 404用戶自定義錯誤: 如果網站管理員開啓了404 網站自定義錯誤,urlrewrite將無法正常工作.