我们在使用ThinkPHP开发项目的时候,有时候项目需求需要隐藏index.php这个路径,使Url链接更加简短,一目了然。那么如何隐藏呢?
隐藏index.php需要额外配置WEB服务器的重写规则,需要在入口文件的同级添加.htaccess文件,官方默认自带了该文件,这里我们分为三种模式。
第一种:以Apache为例
需要修改.htaccess文件的内容为
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}!-d
RewriteCond %{REQUEST_FILENAME}!-f
RewriteRule ^(.*)$ index.php/$1[QSA,PT,L]
第二种:以phpstudy为例
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}!-d
RewriteCond %{REQUEST_FILENAME}!-f
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
第三种:如果入口文件index.php在public文件当中
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}!-d
RewriteCond %{REQUEST_FILENAME}!-f
RewriteRule ^(.*)$ public/index.php [L,E=PATH_INFO:$1]
接下来就可以使用不带index.php的链接访问自己的项目了。
原地址:http://域名.com/index.php/index/index/index
新地址:http://域名.com/index/index/index
如果你使用的apache版本使用上面的方式无法正常隐藏index.php,可以尝试使用下面的方式配置.htaccess
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}!-d
RewriteCond %{REQUEST_FILENAME}!-f
RewriteRule ^(.*)$ index.php?/$1[QSA,PT,L]
这几种方法在一般的php环境中设置好就可以解决问题了。