我希望能够在URL上映射明确的字符串值,例如'index.html',例如mydomain / index.php?r = page / view& id = 1。 ID /值对应存储在数据库中,因此/config/main.php中的硬编码urlManager规则不适合我的目的。 我正在使用yii-1.1.16。
答案 0 :(得分: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
网址映射到mydomain/about.html
,则需要执行以下工作:
1.从网址中删除index.php
:要删除index.php
,您可以轻松引用this link。然后,您需要在httpd.conf
中启用apache RewriteModule。
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
。
祝你好运!
答案 1 :(得分:0)
现在我尝试使用伪造的网址后缀。
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'pattern1'=>array('<controller:page>/<action:view>/<id:\d+>',
'urlSuffix'=>'.html', 'caseSensitive'=>false)
),
),
当我输入网址'/index.php/page/view/id/1'时,它保持不变。 'mydomain / index.php / page / view / id / 2'而不是'mydomain / 1.html'