搭建好thinkphp框架快鱼,瀏覽器輸入url訪問時雕薪,總會先訪問入口文件index.php
比如我在模塊 test 下有個 index.php 的控制器胶哲,控制器里面有兩個方法畔塔,一個 index,一個 demo.
在不加其他路的情況下鸯屿,即不在route.php中配置路由規(guī)則的情況下:
訪問這兩個方法的正確url格式是:
http://mydomain.com/index.php/test/index/index #訪問index方法
http://mydomain.com/index.php/test/index/demo #訪問demo方法
兩者都會正確輸出澈吨,可是我們總覺得這種url格式有點礙眼,不人性化寄摆,因為中間多了個index.php谅辣,但如果去掉中間的index.php的話,訪問就會報錯婶恼,這時候該怎么解決呢桑阶?
經(jīng)過研究柏副,解決辦法如下:
- apache作為web服務(wù)器:
- httpd.conf配置文件中加載了mod_rewrite.so模塊
- AllowOverride None 將None改為 All #有3處,全部要改
- 把下面的內(nèi)容保存為.htaccess文件放到應(yīng)用入口文件的同級目錄下
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>
- nginx作為web服務(wù)器:
- 在相應(yīng)的conf文件中添加如下代碼:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
按照以上添加之后蚣录,重啟服務(wù)器割择,再次訪問就可以把url中的index.php去掉了。