天天看點

thinkphp如何隐藏index.php之IIS和nginx

   前天小濤簡單的說了一下thinkphp在apache環境下是如何隐藏index.php的,為了更好的實作SEO優化,今天小濤在說一下在iis和nginx環境下是如何隐藏index.php的:

IIS環境

如果你的伺服器環境支援ISAPI_Rewrite的話,可以配置httpd.ini檔案,添加下面的内容:

RewriteRule (.*)$ /index\.php\?s=$1 [I]

在IIS的高版本下面可以配置web.Config,在中間添加rewrite節點:

lt;rewrite> <rules> <rule name=”OrgPage” stopProcessing=”true”> <match url=”^(.*)$” /> <conditions logicalGrouping=”MatchAll”> <add input=”{HTTP_HOST}” pattern=”^(.*)$” /> <add input=”{REQUEST_FILENAME}” matchType=”IsFile” negate=”true” /> <add input=”{REQUEST_FILENAME}” matchType=”IsDirectory” negate=”true” /> </conditions> <action type=”Rewrite” url=”index.php/{R:1}” /> </rule> </rules> </rewrite&gt

Nginx環境

在Nginx低版本中,是不支援PATHINFO的,但是可以通過在Nginx.txt中配置轉發規則實作:

location / { // …..省略部分代碼

if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break;

}

其實内部是轉發到了ThinkPHP提供的相容模式的URL,利用這種方式,可以解決其他不支援PATHINFO的WEB伺服器環境。

到這裡不管什麼環境下,都可以實作隐藏index.php的目的了,這樣就可以根據自己的需求的随心所欲了,哈哈……

技術分享,技術交流,小濤與您共同成長……

 本文來自:http://www.zoneself.org/2012/04/27/content_1800.html