0

我正在做一个使用 composer 和 yii 的项目。我会告诉你一些关于环境的信息。我不明白为什么 .htaccess 可以在其他机器上工作,但不能在我的机器上工作。我认为是我的问题=)。我希望有一个人可以帮助我。

  • 文件夹
  • 我的虚拟主机
  • .htaccess 文件
  • yii配置
  • 一些东西
  • 日志

文件夹

该项目具有以下文件夹:

~/Development/www/project/              - Project
~/Development/www/project/app           - Yii's index.php
~/Development/www/project/app/.htaccess - ...
...
...

虚拟主机

这是我的虚拟主机。我只放了 DocumentRoot、DirectoryIndex 和 ServerName。足够的。

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName project
    DirectoryIndex index.php
    DocumentRoot /Users/simonegentili/Development/Www/project/app
</VirtualHost>

.htaccess

这是我们的 .htaccess 文件(我们是因为我与其他开发人员一起工作)。这适用于其他团队成员的 Linux 环境。不要使用 MacOsX 在我的机器上工作。我不认为这个问题是由于 MacOsX 造成的,但我认为这个问题是由于我的错误配置造成的。因此,...这里是我们的 .htaccess。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

Yii 配置

这是我的配置文件。

return array(
    'components' => array(
        'urlManager' => array(
            'urlFormat' => 'path',
            'showScriptName' => false,
            'caseSensitive' => false,
        ),
    ),
);

东西 ...

问题是,如果我将 showScriptName 保持为 true,则所有文件都可以工作,但我会看到诸如“http://project/index.php/site/index”之类的 URL。当 URL 变为“http://project/site/index”时,我收到此错误:

Not Found

The requested URL /site/index was not found on this server.

日志

最后,这是我的日志。我只是得到404错误代码。为什么!?!?!?

127.0.0.1 - - [22/Aug/2013:12:05:34 +0200] "GET /site/index HTTP/1.1" 404 208
[Thu Aug 22 12:05:34 2013] [error] [client 127.0.0.1] File does not exist: ~/Development/Www/project/app/site, referer: http://project/index.php/site/index

PS。您会看到引用者是“http://project/index.php/site/index”,因为首先我在浏览器上打开“http://project/index.php/site/index”,然后我更改了配置文件并刷新页面。

有人能帮我吗!?

4

1 回答 1

0

我认为您缺少 URLManager 规则,将其更改为:

'urlManager' => array(
        'urlFormat' => 'path',
        'showScriptName' => false,
        'caseSensitive' => false,
        'rules'=>array(
            '<controller:\w+>/<id:\d+>'=>'<controller>/view',
            '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
            '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
        ),
    ),
于 2013-08-22T13:00:20.623 回答