Mod_Rewrite其實(shí)就是大家常說(shuō)的偽靜態(tài)了,下面我來(lái)介紹apache中怎么打開(kāi)偽靜態(tài)功能與怎么利用.htaccess來(lái)實(shí)現(xiàn)重寫url。
首先確認(rèn)你已經(jīng)開(kāi)啟服務(wù)器的路由重寫模塊,如果不確認(rèn),請(qǐng)?jiān)趆ttpd.conf文件中查找如下代碼,并將前面的#符號(hào)刪除,重啟服務(wù)器,即開(kāi)啟了重寫模塊
第一步:找到apache的配置文件httpd.conf(文件在conf目錄下)
第二步:你首先必須得讓服務(wù)器支持mod_rewrite,如果你使用的是虛擬主機(jī),請(qǐng)事先詢問(wèn)你的主機(jī)提供商。
打開(kāi)httpd.conf,找到 #LoadModule rewrite_module modules/mod_rewrite.so 把#去掉。
找到AllowOverride None 改成 AllowOverride All。
注:AllowOverride 的參數(shù)設(shè)置為ALL,表示整臺(tái)服務(wù)器上都支持URL規(guī)則重寫。Apache 服務(wù)器要讀每個(gè)網(wǎng)站下目錄下的 .htaccess 文件。如果沒(méi)有這個(gè)文件,或者這個(gè)文檔沒(méi)有定義任何關(guān)于URL重寫的規(guī)則就不會(huì)有任何效果。
對(duì)于不同的網(wǎng)址,需要在APACHE中增加如下內(nèi)容:
- <Directory “E:/Apache Group/Apache2/htdocs/leapsoul”>
- /*引號(hào)里代表你的web存放目錄*/
- /*如果是Linux,只要你定位到你網(wǎng)站目錄即可*/ Options FollowSymLinks AllowOverride None
- </Directory>
第三步:重啟apache服務(wù)器,先按stop再start。
第四步:在你需要URL重寫的網(wǎng)站目錄下放一個(gè).htaccess文件,文件名是.htaccess,Windiws下不能直接建立,你可以用記事本另存為。
注:我測(cè)試的時(shí)候在每個(gè)需要偽靜態(tài)的目錄下都存放了對(duì)應(yīng)的.htaccess文件,同時(shí)在httpd.conf文件中像第二步那樣對(duì)相關(guān)的目錄添加了相應(yīng)的<Directory>..</Directory>代碼。
第五步:在.htaccess中通過(guò)正則表達(dá)式映射需要偽靜態(tài)的頁(yè)面。然后在你的網(wǎng)站配置中加入下面代碼:
- RewriteEngine on
- RewriteRule index.html index.php
- RewriteRule (d+).html$ info.php?infoid=$1
然后重啟apache現(xiàn)在我們就可以如:
.htaccess做法
.htaccess文件,添加如下代碼
- # rewrite規(guī)則
- RewriteEngine on
- RewriteCond %{REQUEST_FILENAME} !-f#這里將除了實(shí)際文件以為的所有其他請(qǐng)求都指向下行代碼給出的腳本,這里是index.php
- RewriteRule .* index.php
在windows下無(wú)法直接創(chuàng)建 .htaccess文件,請(qǐng)注意前面有“點(diǎn)號(hào)”
很奇怪,在 Windows 資源管理器里面不允許你建立 .htaccess 這樣只有擴(kuò)展名的文件。所以你必須先將文件保存為其他名字,例如 app.htaccess。然后進(jìn)入命令行窗口(通過(guò)開(kāi)始菜單運(yùn)行 cmd.exe 程序即可),輸入 ren a.htaccess .htaccess 命令來(lái)對(duì)文件改名。或者新建一個(gè)記事本,另存為.htaccess 即可
新聞熱點(diǎn)
疑難解答
圖片精選