2011-12-03 47 views
6

Tôi cần một quy tắc cho http://example.com/post/view/id/1 url sẽ được hiển thị như thế này http://example.com/post/post_title. Thay vì số id tôi muốn hiển thị tên bài đăng hoặc tiêu đề.Url thân thiện với SEO trong Yii

cấu hình của tôi trông như thế này:

'urlManager'=>array(
     'urlFormat'=>'path', 
     'rules'=>array(    
      //'<controller:\w+>/<id:\d+>'=>'<controller>/view', 
      //'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', 
      //'<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
     ), 
        'showScriptName'=>false, 
    ), 
+1

Chấp nhận một câu trả lời xin vui lòng. –

Trả lời

3

bạn cần phải có một quy tắc mà trông như thế này

'post/<post_title:\w+>'=>'postController/view/title/<post_title>', 

này chỉ nói với các ứng dụng để chuyển tiếp yêu cầu bắt đầu bằng một bài/POST_TITLE để của bài điều khiển actionView trong đó $ _GET ['title'] được đặt thành post_title ...

Hy vọng điều đó sẽ hữu ích.

1

trong mặc định, Yii chỉ truy xuất các bài id, nếu bạn muốn hiển thị tiêu đề bài, bạn cần truy cập vào DB tự của bạn trong một quy tắc lớp tùy chỉnh Url . có là một ví dụ trong hướng dẫn yii gọi using-custom-url-rule-classes

2

Đó là quy tắc đơn giản

'post/<post_title:\w+>' => 'post/view' 

Nếu cần url như thế này http://example.com/post/some-title-with-hyphen

'post/<post_title:[-\w]+>' => 'post/view' 

Và bạn cần một hành động điều khiển với $ POST_TITLE luận

public function actionView($post_title) { 
    ... 
Các vấn đề liên quan