thinkphp框架url隐藏应用的入口文件index.php

搭建好thinkphp框架,浏览器输入url访问时,总会先访问入口文件index.php

比如我在模块 test 下有个 index.php 的控制器,控制器里面有两个方法,一个 index,一个 demo.

thinkphp框架url隐藏应用的入口文件index.php_第1张图片

在不加其他路的情况下,即不在route.php中配置路由规则的情况下:
访问这两个方法的正确url格式是:

http://mydomain.com/index.php/test/index/index    #访问index方法
http://mydomain.com/index.php/test/index/demo    #访问demo方法

两者都会正确输出,可是我们总觉得这种url格式有点碍眼,不人性化,因为中间多了个index.php,但如果去掉中间的index.php的话,访问就会报错,这时候该怎么解决呢?

经过研究,解决办法如下:

  1. apache作为web服务器:
  • httpd.conf配置文件中加载了mod_rewrite.so模块
  • AllowOverride None 将None改为 All #有3处,全部要改
  • 把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下

Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]

  1. nginx作为web服务器:
  • 在相应的conf文件中添加如下代码:
location / { 
  if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php?s=/$1 last;
    break;
  }
}

按照以上添加之后,重启服务器,再次访问就可以把url中的index.php去掉了。

你可能感兴趣的:(thinkphp框架url隐藏应用的入口文件index.php)