当前位置:首页 > CMS教程 > Thinkphp > 列表

ThinkPHP6.0 重写URL去掉Index.php的解决方法

发布:smiling 来源: PHP粉丝网  添加日期:2022-04-08 10:45:59 浏览: 评论:0 

这篇文章主要介绍了ThinkPHP6.0 重写URL去掉Index.php的解决方法,解决问题最好多看看官方给的文档,但有时候也不能全看官网文档,可以结合官网下面的讨论区,借鉴各个大佬们的回答去解决问题。

踩坑!

官网给的解决方案: 解决重写URL,省去index.php问题

可以通过URL重写隐藏应用的入口文件index.php,下面是相关服务器的配置参考:

[ Apache ]

httpd.conf配置文件中加载了mod_rewrite.so模块

AllowOverride None 将None改为 All

把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下。

  1. <IfModule mod_rewrite.c> 
  2. Options +FollowSymlinks -Multiviews 
  3. RewriteEngine on 
  4.  
  5. RewriteCond %{REQUEST_FILENAME} !-d 
  6. RewriteCond %{REQUEST_FILENAME} !-f 
  7. RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L] 
  8. </IfModule> 

官网文档中给的 .htaccess 文件内容如下

  1. <IfModule mod_rewrite.c> 
  2. Options +FollowSymlinks -Multiviews 
  3. RewriteEngine on 
  4.  
  5. RewriteCond %{REQUEST_FILENAME} !-d 
  6. RewriteCond %{REQUEST_FILENAME} !-f 
  7. RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] #这一行踩坑 
  8. </IfModule> 

正确的写法应该如下,官网给的最后一行配置错误

  1. <IfModule mod_rewrite.c> 
  2.  Options +FollowSymlinks -Multiviews 
  3.  RewriteEngine On 
  4.  
  5.  RewriteCond %{REQUEST_FILENAME} !-d 
  6.  RewriteCond %{REQUEST_FILENAME} !-f 
  7.  RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] #这才是对的 
  8. </IfModule>

Tags: ThinkPHP6.0重写URL

分享到: