下面由thinkphp教程欄目給大家介紹thinkphp5.1的URL重寫,偽靜態(tài)設置方法,希望對需要的朋友有所幫助!
? ?thinkphp 5.1 可以通過url重寫隱藏應用的入口文件index.php(也可以是其它的入口文件,但url重寫通常只能設置一個入口文件),下面是相關服務器的配置參考:
httpd.conf配置文件中加載了mod_rewrite.so模塊
AllowOverride None 將None改為 All
把下面的內容保存為.htaccess文件放到應用入口文件的同級目錄下
<ifmodule> ??Options?+FollowSymlinks?-Multiviews ??RewriteEngine?On ??RewriteCond?%{REQUEST_FILENAME}?!-d ??RewriteCond?%{REQUEST_FILENAME}?!-f ??RewriteRule?^(.*)$?index.php/$1?[QSA,PT,L] </ifmodule>
iis?
如果你的服務器環(huán)境支持ISAPI_Rewrite的話,可以配置httpd.ini文件,添加下面的內容:
立即學習“PHP免費學習筆記(深入)”;
RewriteRule (.*)$ /index.php?s=$1 [I]
在IIS的高版本下面可以配置web.Config,在中間添加rewrite節(jié)點:
RewriteRule?(.*)$?/index.php?s=$1?[I]<rewrite> ?<rules> ?<rule> ?<match></match> ?<conditions> ?<add></add> ?<add></add> ?<add></add> ?</conditions> ?<action></action> ?</rule> ?</rules> ?</rewrite>
RewriteRule (.*)$ /index.php?s=$1 [I]
在Nginx低版本中,是不支持PATHINFO的,但是可以通過在Nginx.conf中配置轉發(fā)規(guī)則實現(xiàn):
location?/?{?//?…..省略部分代碼 ???if?(!-e?$request_filename)?{ ??? rewrite??^(.*)$??/index.php?s=/$1??last; ????} }
其實內部是轉發(fā)到了ThinkPHP提供的兼容URL,利用這種方式,可以解決其他不支持PATHINFO的WEB服務器環(huán)境。
如果你的應用安裝在二級目錄,Nginx的偽靜態(tài)方法設置如下,其中youdomain是所在的目錄名稱。
http://serverName/模塊/控制器/操作/[參數(shù)名/參數(shù)值...]
原來的訪問URL:
http://serverName/index.php/模塊/控制器/操作/[參數(shù)名/參數(shù)值...]
設置后,我們可以采用下面的方式訪問:
http://serverName/模塊/控制器/操作/[參數(shù)名/參數(shù)值…]
如果你沒有修改服務器的權限,可以在index.php入口文件做修改,這不是正確的做法,并且不一定成功,視服務器而定,只是在框架執(zhí)行前補全$_SERVER[‘PATH_INFO’]參數(shù)。
$_SERVER['PATH_INFO']?=?$_SERVER['REQUEST_URI'?];