【问题标题】:Cannot get Yii urlManager to work无法让 Yii urlManager 工作
【发布时间】:2012-12-25 09:07:29
【问题描述】:

经过几个小时的搜索,我问这个问题。我只是说不出我在这里想念什么。我正在尝试为我的 Yii 应用程序设置友好的 URL。

  1. 我的基本网址是http://www.baby-registry.org/BABYREG/app/
  2. 我正在尝试将此网址 http://www.baby-registry.org/BABYREG/app/index.php?r=generalProducts/admin 更改为 http://www.baby-registry.org/BABYREG/app/productAdmin
  3. 在我的 main.php 配置文件中使用它:

    'urlManager'=>数组( 'urlFormat'=>'路径', '规则'=>数组( ), ),

  4. 无论有没有规则(尝试了我在 stackoverflow 上找到的不同规则),这完全破坏了我的应用程序,我收到了著名的通知“恭喜!你已经成功地创建了你的 Yii 应用程序。 您可以通过修改以下两个文件来更改此页面的内容:......'

我做错了什么? 这与我有一个像 (BABYREG/app) 这样的基本网址有关吗?

【问题讨论】:

  • 你使用什么网络服务器?
  • 同时显示整个 UrlManager 配置的行
  • 只是为了确认一下,您已经为 rukes 数组尝试过这个? 'rules'=>array('productsAdmin'=>'generalProducts/admin'),
  • 您是否创建了“必需的”.htaccess?

标签: yii url-routing


【解决方案1】:

您需要发布更多代码,以及您收到的错误消息(如果有)。

但是,URL 重写在 Yii 中不起作用的一个常见原因是 apache 模块 mod_rewrite 已关闭。这个 apache 模块需要使用 Yii URL 重写。

要检查此模块是否已启用,在 PHP 中,use apache_get_modules(); 这将返回一个启用的 apache 模块数组。因此,检查 mode_rewrite 是否启用的简单方法是:

if (in_array('mod_rewrite', apache_get_modules())){
    // mod_rewrite is enabled
}

如果未启用,请要求您的托管公司为您启用它。如果您在本地主机上工作(使用 WAMP),只需在系统托盘上 WAMP 图标中的 apache 菜单 - 模块 下单击它即可启用它

【讨论】:

    【解决方案2】:

    我只是花了太长时间将我的数组参数颠倒过来。这是我第一次成功的重写:

    应用中的链接:

    <a href='<?php echo Yii::app()->createUrl("home"); ?>'>Rewriting test</a>
    

    PHP 配置:

    'rules'=>array('successfully/rewritten' => 'home');
    

    请注意,它是所需的 url,然后是 现有的 url。倒退,在我的脑海里——我认为它是“把这个改写成这个”。相反,它是“这是对此的重写”。 ^_^

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多