【问题标题】:Yii 1.1.7 - cannot find gii pageYii 1.1.7 - 找不到 gii 页面
【发布时间】:2011-06-05 22:27:44
【问题描述】:

我想在 Yii 中使用 Gii。我的第一个 webapp 的 protected/config/main.php 没有注释这部分,按照 Yii 文档中的说明启用 Gii(123.45.67.123 是我尝试访问的计算机的公共 IP 地址):

'modules'=>array(
            // uncomment the following to enable the Gii tool
            'gii'=>array(
                    'class'=>'system.gii.GiiModule',
                    'password'=>'123456',
                    // If removed, Gii defaults to localhost only. Edit carefully to taste.
                    'ipFilters'=>array('123.45.67.123','127.0.0.1','::1'),
            ),
    ),

我还通过取消以下注释在我的 protected/config/main.php 中启用了 urlManager:

// uncomment the following to enable URLs in path-format
            'urlManager'=>array(
                    'urlFormat'=>'path',
                    'rules'=>array(
                            '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                            '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
                            '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
                    ),
            ),

当我访问我的 Yii 站点时,例如 www.example.org,基本的 Yii 页面加载正常。当我访问 www.example.org/gii 时,我得到一个 404。当我去 www.example.org/index.php?r=gii 时,我得到一个 404。为什么我的 Gii 页面没有找到?我使用的是 CentOS 5.6。

【问题讨论】:

  • 您是否启用了 .htaccess 文件和 mod_rewrite?
  • 是的,.htaccess 和 mod_rewrite 在 Apache 端启用。

标签: php url-routing yii


【解决方案1】:

您能否发布包含@briiC.lv 代码的整个 urlManager 块?它应该可以工作,它和我的几乎一样:

'urlManager'=>array(
    'urlFormat'=>'path',
    'rules'=>array( // remove gii for production:
        'gii'=>'gii',
        'gii/<controller:\w+>'=>'gii/<controller>',
        'gii/<controller:\w+>/<action:\w+>'=>'gii/<controller>/<action>',
        'site/index'=>'/',
        '<controller:\w+>'=>'site/<controller>',
        '<filter:(proj|dept)>/<id:\d+>'=>'site/',
    ),
    'showScriptName'=>false,
),

如果它仍然不起作用,您可能还想发布/链接到完整的 main.config 文件。

【讨论】:

  • 不幸的是,stackoverflow 不允许我复制/粘贴整个 main.php 文件。字符太多它仍然无法正常工作,即使使用 briiC.Iv 的代码。
【解决方案2】:

试试:

http://www.example.org/index.php/gii

看来您的规则与我对 url 的规则相同。如果http://www.example.org 将您带到您的主要 yii webapp 页面,那么上面的链接应该可以工作。

你要去http://www.example.org/gii这是不正确的。

【讨论】:

  • 是的,这行得通!!!现在这意味着我还可以让我的 urlManager 为干净的 URL 工作!谢谢!
  • 谢谢!我也有干净的网址,想知道为什么它对我不起作用,如教程中所示,使用 index.php?r=gii ..:P
  • 当您第一次了解该框架时,这些小事会阻碍您。很高兴我们在这里有一个很好的 Yii 社区来为您加快速度。
  • 更糟糕的是,写得不好的“入门”文档会让你的速度更慢。你按照他们建议的路线,它根本行不通。
【解决方案3】:

我正在为 gii 使用这样的 urlManager

'urlManager'=>array(
    'urlFormat'=>'path',
    'cacheID' => false,
    //'caseSensitive' => true,
    'showScriptName' => false,
    'urlSuffix' => '/',
    'rules'=>array(
          'gii'=>'gii',
          'gii/<controller:\w+>'=>'gii/<controller>',
          'gii/<controller:\w+>/<action:\w+>'=>'gii/<controller>/<action>', 
...

并且它不会与其他站点页面的路由冲突

【讨论】:

  • 不幸的是,这没有任何效果。当我用你的代码替换它时,仍然无法让 gii 使用你的代码。
【解决方案4】:

您是否尝试过停用 urlManager?只是看看gii本身是否在工作

【讨论】:

  • 完美!现在 gii 可以在没有 urlManager 的情况下工作!那么如何让 urlManager 工作和 gii 工作?
  • 问题是我知道 urlManager 正在工作(有点),因为我的网站页面看起来像“www.example.org/site/about”。现在,当我禁用 urlManager 时,它们看起来像 index.php?r=site/page&view=about,但 gii 有效!好像 urlManager 不知道 gii 页面。这可能是一个错误???
  • 请参考下面我的回答,用户。
【解决方案5】:

如果您启用了 mod 重写并希望将以下内容放入您的 htaccess 文件中

php_value upload_max_filesize 1M
DirectoryIndex index.php

Options +FollowSymlinks
RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

并将以下内容添加到 config/main.php 文件中的 'urlManager' 数组中:

'showScriptName'=>false,

将从您的网址中删除 index.php 并确保仅以 domain.com/controller/action 的形式显示网址

【讨论】:

    【解决方案6】:

    在我的虚拟主机配置中添加以下内容之前,我无法访问 www.example.org/gii

    <Directory /path/to/web/root>
      Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    

    【讨论】:

      【解决方案7】:

      我刚刚在 URL 和 Gii 上遇到了同样的问题,我发现我写的 IP 地址不正确。当我从网络统计中更改为正确的,然后将 IP 添加到 GII 的 ipFilters 中。

      希望有帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-31
        • 1970-01-01
        • 1970-01-01
        • 2014-01-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多