Thinkphp5如何隐藏index.php?

Thinkphp5如何隐藏index.php?

我们在使用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环境中设置好就可以解决问题了。


分享到:


相關文章: