Я хотел бы создать URL-адрес, как это:
http://domain.com/index.php/hir/2015-02-12/news_title
Вот мой urlmanager, который не работает:
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'hir/<date:\d+>/<title:\w+>'=>'news/view',
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
И вот мой .htaccess:
Options +FollowSymLinks
IndexIgnore */*
<IfModule mod_rewrite.c>
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
</IfModule>
RewriteEngine on
Нет необходимости в .htacces файле, вы можете решить это с помощью url-manager. Просто измените ваше первое правило url-manager следующим образом:
'hir/<date:\d+>/<title:\w+>'=>'news/view' TO 'hir/<date>/<title>'=>'news/view'
Я думаю, что это поможет вам.
Ваш шаблон URL почти правильный.
Но <date:\d+>
не разрешит формат даты (гггг-мм-д). Потому что вы дали Regex \d
, что является сокращением для [0-9]. Это не позволит hyphen sign
который в вашей строке даты.
Итак, измените Regex, который может разрешить формат вашей даты.
Я могу предложить: использовать <date:[\w-]+>
вместо <date:\d+>
в вашем urlManager.