Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 关于自举的探讨_Php_.htaccess - Fatal编程技术网

Php 关于自举的探讨

Php 关于自举的探讨,php,.htaccess,Php,.htaccess,我创建了一个bootstrap类,它保存重定向和从URL获取参数 class Bootstrap { private $controller; private $action; private $request; public function __construct($request){ $this->request = $request; if ($this->request['controller'] == ''

我创建了一个bootstrap类,它保存重定向和从URL获取参数

class Bootstrap
{
    private $controller;
    private $action;
    private $request;

    public function __construct($request){
        $this->request = $request;
        if ($this->request['controller'] == '') {
            $this->controller = 'home';
        } else {
            $this->controller = $this->request['controller'];
        }

        if ($this->request['action'] == '') {
            $this->action = 'index';
        } else {
            $this->action = $this->request['action'];
        }
        echo $this->controller;
    }
}
我已将我的域从localhost更改为php.dev。现在的问题是,每当我在url中输入某个内容时,它只会回显“索引”或操作,即使我在操作中输入了某个内容,它也会回显“索引”。例如:我输入了php.dev/users/它应该与控制器中的“users”一词相呼应。这是我的.htaccess文件:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([a-zA-Z)]*)/?([a-zA-Z]*)?/?([a-zA-z)-9]*)?/?$ index.php?controller=$1&action=$2&id=$3 [NC,L]
试试这个规则:

RewriteRule ^([^/]+)(/([^/]+)(/([^/]+))?)?/?$ index.php?controller=$1&action=$3&id=$5 [NC,QSA,L]

我在我的项目中使用了它,它可以正常工作。如果问题仍然存在,请确保在将$request传递给类时正确填写。

成功了!谢谢你的帮助,伙计。非常感谢。抱歉,我刚刚意识到,当我输入php.dev时,只有echo index.php不在家?请尝试在规则之前添加以下行:
RewriteCond%{REQUEST_FILENAME}-d
重写cond%{REQUEST_FILENAME}-f