- 解决方案:
- 第一步:
打开thinkphp网站根目录下面的.htaccess文件中的
- 第二步:
找到
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
这行
在默认情况下会导致No input file specified.
- 第三步:
将它修改成
配置thinkPHP伪静态规则
教程
ThinkPHP是一款基于MVC模式的PHP开发框架,其伪静态规则有以下两种:
1. Apache服务器 Apache服务器需要使用.htaccess文件,伪静态规则如下:
“`
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
“`
解释:
– RewriteEngine On:启用重写引擎
– RewriteCond %{REQUEST_FILENAME} !-d:如果请求的文件夹不存在
– RewriteCond %{REQUEST_FILENAME} !-f:如果请求的文件不存在
– RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]:将所有请求都重写到index.php文件,并将请求字符串传递给index.php文件,[QSA,PT,L]是参数,表示保留查询字符串(QSA)、使用代理传递(PT)和停止重写(L)。
2. Nginx服务器 Nginx服务器需要在server段中添加以下代码:
“` location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } }
“` 解释:
– location /:匹配所有请求
– if (!-e $request_filename):如果请求的文件不存在
– rewrite ^(.*)$ /index.php?s=/$1 last:将所有请求都重写到index.php文件,并将请求字符串传递给index.php文件,last表示停止匹配其他规则。
暂无评论内容