0

经过几个小时的搜索,我问这个问题。我只是说不出我在这里想念什么。我正在尝试为我的 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'=>array('urlFormat'=>'path', 'rules'=>array(), ),

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

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

4

2 回答 2

0

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

应用内链接:

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

PHP 配置:

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

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

于 2014-03-21T19:28:48.080 回答
0

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

但是,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),只需通过在apache 菜单下单击它来启用它 -系统托盘上 WAMP 图标中的模块

于 2012-12-25T23:04:24.057 回答