1

我希望能够在诸如 mydomain/index.php?r=page/view&id=1 的 URL 上映射明确的字符串值,例如 'index.html'。id/value 对应该存储在数据库中,因此 /config/main.php 中的硬编码 urlManager 规则不适合我的目的。我正在使用 yii-1.1.16。

4

2 回答 2

1

尝试将 url-manager 更改为:

'urlManager'=>array(
    'urlFormat'=>'path',
    'urlSuffix'=>'.html',
    'caseSensitive'=>false
    'rules'=>array(
        'pattern1'=>array('<controller:page>/<action:view>/<id:\d+>', 
    ),  

),

这可能会有所帮助。

更新:

如果要将/index.php/page/view/id/1url 映射到mydomain/about.html,则需要执行以下工作:

1.Remove index.phpfrom url:要删除index.php,你可以很容易地参考这个链接。然后你需要在httpd.conf.

2.在 url-manager 中添加规则:我更新了 url-manager 规则,现在看起来像这样:

'urlManager'=>array(
     'urlFormat'=>'path',
     'showScriptName' => false,
     'urlSuffix'=>'.html',
     'caseSensitive'=>false
     'rules'=>array(
         'about'=>'page/view/id/1',
         'pattern1'=>array('<controller:page>/<action:view>/<id:\d+>',
),  

),

请注意,无需index.php在所有 url-manager 规则中重复。祝你好运!

于 2015-03-02T04:42:17.093 回答
0

现在我尝试使用伪造的 url 后缀。

'urlManager'=>array(
        'urlFormat'=>'path',
        'rules'=>array(
            'pattern1'=>array('<controller:page>/<action:view>/<id:\d+>', 
            'urlSuffix'=>'.html', 'caseSensitive'=>false)
        ),
    ),

当我输入 URL '/index.php/page/view/id/1' 时,它保持不变。'mydomain/index.php/page/view/id/2' 而不是 'mydomain/1.html'

于 2015-03-01T19:04:45.633 回答