2015-02-16 3 views
1

Я хотел бы создать URL вроде этого: http://domain.com/index.php/hir/2015-02-12/news_titleюй менеджер URL с 2 Params

Вот мой 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 

ответ

1

Нет необходимости в .htacce файле, вы можете решить это с помощью url-manager. Просто измените правило своего первого правила URL-менеджера следующим образом:

'hir/<date:\d+>/<title:\w+>'=>'news/view' TO 'hir/<date>/<title>'=>'news/view' 

Я думаю, это поможет вам.

1

Ваш шаблон URL почти правильный.

Но <date:\d+> не позволит использовать формат даты (yyyy-mm-d). Потому что вы дали Regex \d, который является сокращением для [0-9]. Это не позволит hyphen sign, который находится в вашей строке даты.

Итак, измените регулярное выражение, которое может позволить формат даты.

Я могу предложить: использовать <date:[\w-]+> вместо <date:\d+> в вашем urlManager.

Смежные вопросы