我有一個名爲「SitemapController」的控制器。這很容易地映射到這個網址:使用YII獲取其中包含.xml的路徑名?
/sitemap
不過,我需要這個鏈接,如果你打開
/sitemap.xml
也工作,我該如何映射它在誼這樣的系統可以同時使用?
我有一個名爲「SitemapController」的控制器。這很容易地映射到這個網址:使用YII獲取其中包含.xml的路徑名?
/sitemap
不過,我需要這個鏈接,如果你打開
/sitemap.xml
也工作,我該如何映射它在誼這樣的系統可以同時使用?
您可以通過編輯配置文件實現它像下面,
'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中/ ..
添加到您的URL路由'sitemap' => array('site/sitemap', 'urlSuffix'=>'.xml'),
將這兩種情況下工作? – dev1234
它應該做,如果你把它放在你的路由規則的末尾。 Yii將使用第一條有效的規則,所以應該找到兩種情況。 –
您可以通過修改網址經理在配置/ 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>',
),
),
在你.htaccess
添加此規則
RewriteEngine On
RewriteRule ^sitemap.xml.*$ http://example.com/sitemap/ [R=301,L]
如果你使用這個現在會發生什麼? /sitemap.xml – dev1234
未找到路徑。但是我按照建議添加了路線,並且工作正常。 – coderama
想知道爲什麼我得到了一個downvote ... – coderama