2

我正在 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。

4

4 回答 4

1

尝试遵循 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]
于 2013-04-20T10:16:01.100 回答
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>
于 2013-04-20T10:02:36.347 回答
1

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

于 2015-04-20T10:56:02.753 回答
0

您需要添加:

RewriteBase /MyMVCProject

到您的 .htaccess 文件。

于 2016-04-26T06:44:21.707 回答