我正在尝试获得一个用于路由设置的简单前端控制器。这是我拥有的front-controller.php文件:
<?php
if ($_SERVER['REQUEST_URI'] == '/help') {
include 'help.php';
}
这是我的index.php(位于htdocs/wad下)文件夹中的一个.htaccess文件
RewriteEngine On
RewriteRule . /front-controller.php [L]
在httpd.conf
中,我将AllowOverride None
行的所有实例更改为AllowOverride All
,并取消对LoadModule rewrite_module modules/mod_rewrite.so
行的注释。
如果我尝试转到localhost/wad/help,甚至localhost/wad,我会得到错误404:http://puu.sh/cE6WT/2e4c645555.png
help.php文件已存在。我希望能够浏览到localhost/wad/help并加载它(在同一页面中,而不是重定向到它)。我是不是搞错了?
感谢
我认为,如果你像这样使用.htaccess,还有一种更好的方法:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /front-controller.php?action=$1 [QSA,L]
然后在front-controller.php
中,您可以使用$_GET["action"]
解析它,并将其路由到您想要的位置。