2013-12-22 54 views
0

我有一個名爲「SitemapController」的控制器。這很容易地映射到這個網址:使用YII獲取其中包含.xml的路徑名?

/sitemap 

不過,我需要這個鏈接,如果你打開

/sitemap.xml 

也工作,我該如何映射它在誼這樣的系統可以同時使用?

+0

如果你使用這個現在會發生什麼? /sitemap.xml – dev1234

+0

未找到路徑。但是我按照建議添加了路線,並且工作正常。 – coderama

+0

想知道爲什麼我得到了一個downvote ... – coderama

回答

3

您可以通過編輯配置文件實現它像下面,

'urlManager'=>array(
     'urlFormat'=>'path', 
     'rules'=>array(
      'sitemap/*'=>'sitemap/index', 
      'sitemap.xml/*'=>'sitemap/index', 

      '<controller:\w+>/<id:\d+>'=>'<controller>/view', 
      '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', 
      '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
     ), 
    ), 

現在它將會映射路線站點地圖/ someKey/someValue中/ ..

2

添加到您的URL路由'sitemap' => array('site/sitemap', 'urlSuffix'=>'.xml'),

+0

將這兩種情況下工作? – dev1234

+1

它應該做,如果你把它放在你的路由規則的末尾。 Yii將使用第一條有效的規則,所以應該找到兩種情況。 –

1

您可以通過修改網址經理在配置/ main.php這樣,

'網站/ sitemap.xml的'=> '網站/網頁指南' ,

'urlManager'=>array(
     'urlFormat'=>'path', 
     'rules'=>array(
          'site/sitemap.xml'=>'site/sitemap', 
      '<controller:\w+>/<id:\d+>'=>'<controller>/view', 
      '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', 
      '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
     ), 
    ), 
1

在你.htaccess添加此規則

RewriteEngine On 
RewriteRule ^sitemap.xml.*$ http://example.com/sitemap/ [R=301,L]