ThinkPHP5.1中URL重写.htaccess更改后无效的解决方法

2018-05-24 17:21:12 浏览数 (1)

昨天是打算更换项目框架的,决定了这个 ThinkPHP5,我使用的是 5.1 版本

开发中一直不喜欢 URL 中有这个index.php,这个时候就要使用.htaccess 来进行 URL 重写,之前有文章大概介绍了一下简单配置.htaccess 就可以实现的几个功能以及.htaccess 文件使用手册,框架都会通过 URL 重写隐藏应用的入口文件index.php,ThinkPHP 框架和 Laravel 框架的入口文件路径一样,都是在public下面

本地开发使用的是 Apache 环境,所以按照官方文档来

  1. httpd.conf配置文件中加载了mod_rewrite.so模块
  2. AllowOverride NoneNone改为 All
  3. 把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下
代码语言:javascript复制
<IfModule mod_rewrite.c>
  Options  FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

对于模块什么的都是之前配好的,当然是不用改了,心想着是 ojbk 了

原来的访问 URL:

代码语言:javascript复制
http://serverName/index.php/模块/控制器/操作/[参数名/参数值...]

更改以后应该是

代码语言:javascript复制
http://serverName/模块/控制器/操作/[参数名/参数值...]

现实是我去访问下面的 URL 不可以访问,提示:No input file specified.

仔细检查一下没有什么问题,应该是官方文档有问题了

TP5.1 的 Apache 配置文件.htaccess,正确配置如下所示:

代码语言:javascript复制
<IfModule mod_rewrite.c>
  Options  FollowSymlinks -Multiviews
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>

沈唁志|一个PHPer的成长之路! 原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:ThinkPHP5.1中URL重写.htaccess更改后无效的解决方法

0 人点赞