我希望能够在诸如 mydomain/index.php?r=page/view&id=1 的 URL 上映射明确的字符串值,例如 'index.html'。id/value 对应该存储在数据库中,因此 /config/main.php 中的硬编码 urlManager 规则不适合我的目的。我正在使用 yii-1.1.16。
问问题
402 次
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/1
url 映射到mydomain/about.html
,则需要执行以下工作:
1.Remove index.php
from 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 回答