为啥 thinkphp(3.2.3) URL跳转后多了index.php?

发布于 2022-09-06 22:05:31 字数 836 浏览 15 评论 0

Apache服务器

config文件配置是这样的

'URL_HTML_SUFFIX'=>'html',
'URL_CASE_INSENSITIVE' => true,
'URL_MODEL' => 2,
'URL_ROUTER_ON' =>true,

.htaccess文件配置是这样的

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
  
  RewriteCond %{REQUEST_METHOD} ^TRACE
  RewriteRule .* - [F]

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
  
  RewriteCond %{HTTP_HOST} ^xxx.cn [NC]
  RewriteRule ^(.*)$ http://www.xxx.cn/$1 [L,R=301]
</IfModule>



问题是这样的:

目前通过xxx.cn可以正常跳转到www.xxx.cn,其他非首页链接跳转后会增加index.php,已测试没有这个index.php也是可以正常访问的,做了隐藏的,但是
比如xxx.cn/home/test/test/这样的非首页链接,跳转就会变成www.xxx.cn/index.php/home/test/test/
为什么会多了index.php?如何去掉这个index.php?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

漫雪独思 2022-09-13 22:05:31

你是不是用到了tp的U方法生成链接地址啊?如果是的话,原因就是:index.php是tp的入口文件,他的作用是加载tp运行需要的所有资源,如果没有index.php,tp就无法正常处理请求!当你配置了apache重写规则,但是tp并不知道你配置了这个规则,所以必然的生成带index.php的访问url,便于下次请求的时候能正常处理,现在的这种情况,要不然你就自己手动添加访问的地址:例如U("User/Login")替换到/User/Login

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文