【问题标题】:PHP Front Controller and .htaccess with XAMPP and Windows带有 XAMPP 和 Windows 的 PHP 前端控制器和 .htaccess
【发布时间】:2015-01-01 12:13:43
【问题描述】:

我正在尝试获得一个用于设置路由的简单前端控制器。这是我拥有的 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 并加载它(在同一页面中,而不是重定向到它)。我是不是走错了路?

谢谢

【问题讨论】:

  • 我打开一个filezilla,在远程服务器上创建一个.htacess,然后下载到我的本地主机。但是有几种方法可以在 Windows 上创建 .htaccess。 stackoverflow.com/questions/5004633/…
  • 谢谢!现在 .htaccess 文件肯定正在使用,但我无法再访问任何页面,即使在 localhost/wad/ 上也找不到对象
  • 编辑您的问题,并向我们展示您的整个 .htaccess 文件内容。
  • 已编辑——即整个文件内容

标签: php apache .htaccess


【解决方案1】:

我认为,如果您像这样使用 .htaccess,还有更好的方法:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /front-controller.php?action=$1 [QSA,L]

然后在您的front-controller.php 中,您可以使用$_GET["action"] 解析它,并将其路由到您想要的位置。

【讨论】:

    猜你喜欢
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 2010-12-22
    • 2017-04-23
    相关资源
    最近更新 更多