昨天是打算更换项目框架的,决定了这个ThinkPHP5,我使用的是5.1版本
开发中一直不喜欢URL中有这个index.php,这个时候就要使用.htaccess来进行URL重写,之前有文章大概介绍了一下简单配置.htaccess就可以实现的几个功能以及.htaccess 文件使用手册,框架都会通过URL重写隐藏应用的入口文件index.php,ThinkPHP框架和Laravel框架的入口文件路径一样,都是在public下面
本地开发使用的是Apache环境,所以按照官方文档来
httpd.conf配置文件中加载了mod_rewrite.so模块
AllowOverride None 将None改为 All
把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
对于模块什么的都是之前配好的,当然是不用改了,心想着是ojbk了
原来的访问URL:
http://serverName/index.php/模块/控制器/操作/[参数名/参数值...]
更改以后应该是
http://serverName/模块/控制器/操作/[参数名/参数值...]
现实是我去访问下面的URL不可以访问,提示:No input file specified.
仔细检查一下没有什么问题,应该是官方文档有问题了
TP5.1 的 Apache 配置文件.htaccess,正确配置如下所示:
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]