個人工具
名字空間
變換
操作

Rewrite

來自站長百科
跳轉到: 導航, 搜索

Rewrite主要的功能就是實現URL的重寫,它的正則表達式是基于Perl語言。可基于服務器級的(httpd.conf)和目錄級的(.htaccess)兩種方式。如果要想用到rewrite模塊,必須先安裝或加載rewrite模塊。方法有兩種一種是編譯apache的時候就直接安裝rewrite模塊,別一種是編譯apache時以DSO模式安裝apache,然后再利用源碼和apxs來安裝rewrite模塊。

基于服務器級的(httpd.conf)有兩種方法,一種是在httpd.conf的全局下直接利用RewriteEngine on來打開rewrite功能;另一種是在局部里利用RewriteEngine on來打開rewrite功能,下面將會舉例說明,需要注意的是,必須在每個virtualhost里用RewriteEngine on來打開rewrite功能。否則virtualhost里沒有RewriteEngine on它里面的規則也不會生效。

基于目錄級的(.htaccess),要注意一點那就是必須打開此目錄的FollowSymLinks屬性且在.htaccess里要聲明RewriteEngine on。

目錄

Rewrite語法

RewriteRule

常用Rewrite規則

IIS中使用Rewrite

我們通過在IIS中安裝一個名為 ISAPI_Rewrite 的ISAPI篩選器來實現 Rewrite 功能,您需要做的事情只有一個,就是修改配置文件 httpd.ini ,這里舉一個簡單的例子來說明它的用法。

假設您要實現這樣的 Rewrite 功能:您希望當用戶訪問 /about.htm 的時候實際訪問的是 /index.html (您的空間里可以并不需要存在 about.htm)。

那么,設置方法是:

1、創建一個文本文件,內容為

    [ISAPI_Rewrite]
  RewriteRule /about\.htm /index.html

這里,RewriteRule 這一行即為規則行,這一行由三部分組成,三部分由空格隔開,第一部分即 RewriteRule 這幾個字,第二部分為用戶訪問的地址(使用正則表達式),第三部分為實際存在于服務器上的文件路徑。

2、將上述文件保存,命名為 httpd.ini 。

3、將這個文件上傳到您的網站根目錄中,對于我們的虛擬主機,即上傳至 /web 文件夾中。

這時,當您訪問 about.htm 的時候,看到的就是 index.html 的內容。

Rewrite 是一個功能強大的平臺,要真正的使用它,您可能要花費相當長的時間來學習。如果您使用像 Discuz! 論壇等支持偽靜態的系統,而僅僅是需要使用偽靜態功能,那么您可以不必學習,直接復制論壇開發者提供的配置文件即可,但要注意配置文件必須命名為 httpd.ini ,并且這個文件必須放在網站的根下。

httpd.ini 修改或者上傳后一般會立即生效,如果長時間不能生效,請登錄主機控制面板將網站停止然后再啟動。

Rewrite作用

相關條目

偽靜態 網址規范化 Apache Mod_rewrite Htaccess

參考資料

  1. http://doc.zzbaike.com/apache/2-2/rewrite/rewrite_guide.html
  2. http://doc.zzbaike.com/apache/2-2/mod/mod_rewrite.html

留言

街机捕鱼达人 2018平特一肖公式 广西快乐双彩开奖情况 中超 内蒙古时时彩中奖钱数 广西快乐10分钟计划 快彩投注技巧 安徽时时彩直播开奖结果查询 都说问道赚钱 内蒙古快3形态走势 山东时时彩预测 北京十一选五基本走势图一定 排列5历史300期 3d开奖 彩票20选5有哪些技巧 广西11选5走势图买技巧 双色球复式投注