http://localhost/app/index.php/login 在地址栏输入可以出现网页
http://localhost/app/ 这样输入提示无法找到该网页 然后地址栏变成http://localhost/app/login
http://localhost/app/index.php/login 这样输入可以出现网页
php的版本是5.5 thinkphp版本是3.12
.htaccess 里面的内容为 :
rewriteengine on
rewritecond %{request_filename} !-d
rewritecond %{request_filename} !-f
rewriterule ^(.*)$ index.php/$1 [qsa,pt,l]
loadmodule rewrite_module modules/mod_rewrite.so前面#号去掉了,allowoverride all也改了
config配置文件里面 已经添加 'url_model' => 2
代码为:
class indexaction extends commonaction {
public function index(){
}
}
header('content-type:text/html;charset=utf-8');
//公共调用非执行类
class commonaction extends action{
//构造函数 __construct
public function _initialize(){
echo '<script>window.top.location.href = "'.__app__.'/login"; </script>';
}
}
class loginaction extends action {
//登录展示页
public function index(){
$this->display('login');
}
}
请问要怎么解决呢
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
我把这个改成
RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
这样居然出来了
但是我网上搜索基本上都是第一种这样的,只看到一次有人说改成这样 而且说不出为什么
这说明你没有开启 path_info
你的 Apache 是什么版本的?为什么不是默认开启
请问要怎么开启呢 我下的是phpstudy2014 Apache是2.4.10的版本
这位大哥,我试了试网上的方法,好像 path_info已经开启了的
嗯
http://localhost/app/index.php/Login 可以,表示 path_info 是开启的
那么你的 RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] 为何不行呢?
这条重写规则就是将
http://localhost/app/Login 变成 http://localhost/app/index.php/Login 去执行的
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号