【问题标题】:.htaccess is not working in my PHP MVC Framework.htaccess 在我的 PHP MVC 框架中不起作用
【发布时间】:2016-09-05 02:20:47
【问题描述】:

我正在 ubuntu 上从头开始构建我自己的 PHP MVC 框架。 .htaccess 文件在其中无法正常工作。文件夹结构和.htaccess文件内容如下。

文件夹结构

/MyMVCProject
/controllers
     index.php
     help.php
/libs
/modles
/views
.htaccess
index.php

.htaccess文件内容

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

当我输入 localh0st/MyMVCProject/help 时,它给了我以下错误。

未找到
在此服务器上找不到请求的 URL /MyMVCProject/help。
Apache/2.2.22 (Ubuntu) 服务器在 localh0st 端口 80

我确定我已经启用了 mod_rewrite。

【问题讨论】:

  • 可能是,您在这里犯了错误localh0st,实际上您正在尝试做localhost
  • 嗨,尤金,当我在“stackoverflow”上发布问题时,我故意这样做了。
  • 好吧。你试过我的建议了吗?
  • 您的应用程序期望的 URL 是什么?例如,对localh0st/MyMVCProject/help 的请求将导致请求被路由到:index.php?url=MyMVCProject/help - 这是正确的吗?

标签: .htaccess url-rewriting


【解决方案1】:

尝试这样做,您可以从$_REQUEST 数组中获取 url 参数并在 index.php 文件中处理它。

也为了测试目的添加

echo <pre>;
print_r($_REQUEST);
echo </pre>;

index.php 的第一行

<ifModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI} ^/$ [NC]
    RewriteRule ^(.*)$ /$1 [R=301,L]
</ifModule>

【讨论】:

    【解决方案2】:

    尝试遵循 RewriteRule(从 Zend 框架复制和修改)

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,NC,L]
    

    【讨论】:

    • 试过这个。结果相同:-(。谢谢。
    【解决方案3】:

    我遇到了同样的事情,在我的情况下,当我在同一目录中有一个 help.php 文件时产生了错误。不知道为什么会这样……

    【讨论】:

    • 如果启用了MultiViews,则可能会发生这种情况,因为这将导致/help在内部重写为/help.php(如果help.php作为物理文件存在于该目录中)在mod_rewrite获取之前重写请求。在这种情况下,您可以在每个目录 .htaccess 中禁用 MultiViewsOptions -MultiViews
    【解决方案4】:

    你需要添加:

    RewriteBase /MyMVCProject
    

    到您的 .htaccess 文件。

    【讨论】:

      猜你喜欢
      • 2016-04-04
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 2015-10-15
      • 2011-06-28
      • 2019-01-04
      • 2021-08-23
      • 2021-09-05
      相关资源
      最近更新 更多