yii — построить URL без настройки urlManager в /config/main.Stack Overflow

Я хочу иметь возможность отображать определенные строковые значения, такие как index.html, на URL-адреса, такие как mydomain / index.php? R = page / view&ID = 1.
Пары идентификатор / значение должны храниться в базе данных, поэтому жесткое кодирование правил urlManager в /config/main.php не подходит для моих целей.
Я использую yii-1.1.16.

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 из 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-менеджера.
Удачи!

1

Другие решения

Сейчас я пытаюсь использовать фальшивый 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»

0

По вопросам рекламы [email protected]