2015-04-02 159 views
0

我只想SanphamController从此有:SEO友好的URL在警予1.1

MYSITE/sanpham/chitiet /蛞蝓/努尔卡-HOA-PHAP-vuiton.html

MYSITE/nuoc-hoa-phap-v​​uiton.html

我已经处理了它,但我的站点中的所有其他控制器(CartController等,..)不再运行,它认为控制器是SanPhamController中的一个项目。

这是我的代码

的.htaccess:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . index.php 

在主/ config.php文件:

'urlManager' => array(
     'rules' => array(
      '/'=>'site/index', 
      '<view:(gioi-thieu|huong-dan|hinh-thuc-thanh-toan|dieu-khoan-dich-vu|chinh-sach-dich-vu)>' => 'site/page', 
      '<action:(lienhe|thanhtoan|dangnhap|dangky|dangxuat)>' => 'site/<action>', 
      'danh-muc/<slug:.*>'=>'sanpham/danhmuc', 
      'thuong-hieu/<slug:.*>'=>'sanpham/thuonghieu', 
      'tim-kiem/<slug:.*>'=>'sanpham/timkiem', 
      '<slug:.*>' => 'sanpham/chitiet', 
      '<controller:\w+>/<id:\d+>' => '<controller>/chitiet', 
      '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', 
      '<controller:\w+>/<action:\w+>' => '<controller>/<action>', 
     ), 
     'urlFormat' => 'path', 
     'urlSuffix' => '.html', 
     'showScriptName' => false, 
), 

回答

0

只需在URL经理阵列的顶部添加此规则:

"nuoc-hoa-phap-vuiton"=>"sanpham/chitiet/slug/nuoc-hoa-phap-vuiton" 
+0

nuoc-hoa-phap-v​​uiton只是一个Model ite在ActionChitiet中。我已经这样做了,但它与其他控制器名称混淆。 例如:“mySite/cart/index”不再工作。 如何在检查它是sanpham/chitiet中的某个项目之前运行yii默认规则? – 2015-04-02 05:44:44

+0

您可以将该规则放在url规则的末尾或用户定义url规则的末尾(在yii默认规则之前)。 – hamed 2015-04-02 05:47:15

+0

很高兴帮助你:) – hamed 2015-04-02 06:13:51