【发布时间】:2017-01-11 21:47:04
【问题描述】:
我用 htaccess 和 PHP 做了简单的路由器。但是这种方式无法在 url 中设置额外的 GET 参数。
.htaccess
RewriteEngine On
[...]
RewriteCond %{REQUEST_URI} !\.(gif|jpg|png)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?url=$1 [PT,L]
[...]
index.php
[...]
$url = isset($_GET['url']) ? $_GET['url'] : null;
$router = new Router($url);
[...]
然后我正在运行调度程序。例如 url www.site.com/user/regierter 运行class UserController -> registerAction()。但是如果我想添加另一个获取请求,例如:
www.site.com/user/regierter?layout=red。
如何使发送 url 部分但接受另一个 get 请求成为可能?
【问题讨论】:
-
您正在寻找重写规则的 QSA 标志,我假设:httpd.apache.org/docs/current/mod/mod_rewrite.html 人们何时会最终开始阅读他们使用的工具的文档? :-)
标签: php .htaccess url-rewriting routing