您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關iis7 php偽靜態的設置方法是什么的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
iis7 php偽靜態設置的方法:首先下載IIS的URLRewrite;然后點擊“Add Rules”并選擇“Blank rule”;最后添加一個偽靜態規則并確定保存即可。
某個項目是PHP的,本地是Apache + PHP + MYSQL,服務器上的環境是IIS + PHP + MYSQL,開發完成準備部署到服務器上發現偽靜態無法使用,原因是IIS不能解析.htaccess文件的內容。
如要在IIS下啟用偽靜態 就需要下載IIS的 URLRewrite,地址是: http://www.iis.net/expand/URLRewrite
點擊那個 or view additional downloads 轉到,服務器是64位的,所以我下載x64版本的URL Rewrite
雙擊下載完成的文件,下一步、下一步到安裝完成
重新打開IIS發現多了個URL Rewrite項,打開全E文呀,不用怕其實配置還是很簡單的……
如果我們要添加一個偽靜態規則那么點擊Add Rules,選擇 Blank rule
我們只需要填寫三個部分
name是這個規則的名稱,可以隨便取一個
Pattern是匹配規則
Action Properties是真實的地址
還有個Test pattern是用來測試匹配規則是否正確,例如我想測試一下^category/(.+)\.html$ 這個匹配設置,Test Results還很貼心的給出了匹配結果和我們需要的參數列表,其中 {R:1}就是我想要的參數,可以在 Rewrite URL中使用: cn/index.php?o={R:1} 是不是很簡單~
順便提一下:我在測試的時候不小心在正則表達式后面多加了個空格,結果總是匹配失敗,所以大家要注意匹配規則的正則表達式前后不要帶空格~
URLRewrite的規則和Apache中基本類似,例如在Apache中匹配規則是這樣的:
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^category/(.+)\.html$ cn/index.php?o=$1 RewriteRule ^substance/(.+)_(.+)\.html$ cn/index.php?o=$1&id=$2</IfModule>
那么在IIS中我們只需要將其中的 $1 $2替換成 {R:1}, {R:2} 就可以了
^category/(.+)\.html$ cn/index.php?o={R:1}
^substance/(.+)_(.+)\.html$ cn/index.php?o={R:1}&id={R:2}
熟悉了規則我們可以不用這個工具自己手工寫URL匹配規則了,在網站根目錄下修改web.config文件,system.webServer節點下增加rewrite項,修改內容為:
<?xml version="1.0" encoding="UTF-8"?><configuration> <system.webServer> <rewrite> <rules> <rule name="category"> <match url="^category/(.+)\.html$" /> <action type="Rewrite" url="cn/index.php?o={R:1}" /> </rule> <rule name="substance"> <match url="^substance/(.+)_(.+)\.html$" /> <action type="Rewrite" url="cn/index.php?o={R:1}&id={R:2}" /> </rule> </rules> </rewrite> </system.webServer></configuration>
感謝各位的閱讀!關于iis7 php偽靜態的設置方法是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。