thinkphp 部署 时只有首页显示正常其他页显示No input file specified的解决方法(apache服务器适用)
问题的想象
首页连接
http://www.666.com/public/index.php/Index/index.html http://www.666.com/public/index.php/Index/index.html显示正常
子页连接
www.666.com/public/Index/article.html?type_id=1 不显示内容
把url改写成 www.666.com/public/index.php/Index/article.html?type_id=1(好用的写法)
就正常显示了。
我们不能每次都手动改写这个连接,因此要找的问题点,改写正确。
问题的原因
原因是路由默认的index.php入口文件被路由隐藏了。在子页点击的连接中没有出现index.php
.htaccess的写法隐藏了index.php入口文件了,他的原理是用正则表达式来控制路由。
有的源码是没有htaccess文件。有的源码是这个文件写错了正则表达式。
解决办法
1.没有.htaccess文件的源码,在根目录和public目录下 新建一个.htaccess文件
2.填写正确的写法
<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>
3.重启服务器。刷新页面就好用了
4 如果有.htaccess文件。打开看下写法
错误的写法
正确的写法(对比发现少了一个问号)
PHP源码指导等其他问题可以联系我免费答疑!(企鹅2275671160/ 薇dlyuedong888)