我试图让一个简单的前端控制器进行路由设置。这是我有的front-controller.php文件:
<?php
if ($_SERVER['REQUEST_URI'] == '/help') {
include 'help.php';
}
这是我在index.php文件夹中的.htaccess文件(在htdocs / wad下)
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并加载它(在同一页面中,不重定向到它)。我是以错误的方式解决这个问题吗?
由于
答案 0 :(得分:3)
我认为,如果您像这样使用.htaccess,还有更好的方法:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /front-controller.php?action=$1 [QSA,L]
然后在您的front-controller.php
中,您可以使用$_GET["action"]
解析它,并路由到您想要的位置。