Я хочу иметь возможность отображать определенные строковые значения, такие как index.html, на URL-адреса, такие как mydomain / index.php? R = page / view&ID = 1.
Пары идентификатор / значение должны храниться в базе данных, поэтому жесткое кодирование правил urlManager в /config/main.php не подходит для моих целей.
Я использую yii-1.1.16.
Попробуйте изменить 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
из URL: Для удаления index.php
Вы можете легко сослаться на эта ссылка. Затем вам нужно включить Apache RewriteModule в httpd.conf
,
2. Добавьте правило в url-менеджере: Я обновил правило 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-менеджера.
Удачи!
Сейчас я пытаюсь использовать фальшивый 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»