在 /config/main.php 中构建 URL 而不配置 urlManager
Build URL without configuring urlManager in /config/main.php
我希望能够将 'index.html' 等明确的字符串值映射到 mydomain/index.php?r=page/view&id=1 等 URL。
Id/value 对应该存储在数据库中,因此 /config/main.php 中的硬编码 urlManager 规则不适合我的目的。
我正在使用 yii-1.1.16.
现在我尝试使用伪造的 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'
尝试将 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
,可以参考this link .然后你需要在httpd.conf
.
中启用apache RewriteModule
2.Add 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+>',
),
),
请注意,无需在所有 url-manager 规则中重复 index.php
。
祝你好运!
我希望能够将 'index.html' 等明确的字符串值映射到 mydomain/index.php?r=page/view&id=1 等 URL。 Id/value 对应该存储在数据库中,因此 /config/main.php 中的硬编码 urlManager 规则不适合我的目的。 我正在使用 yii-1.1.16.
现在我尝试使用伪造的 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'
尝试将 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
,可以参考this link .然后你需要在httpd.conf
.
2.Add 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+>',
),
),
请注意,无需在所有 url-manager 规则中重复 index.php
。
祝你好运!