我有一个名为"SitemapController"的控制器。这很容易映射到此 URL:
/sitemap
但是,如果您打开,我需要该链接也可以工作
/sitemap.xml
如何在 YII 中映射它,以便系统可以同时使用两者?
你可以
通过编辑配置文件来实现它,
'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/.。
将其添加到您的网址路由'sitemap' => array('site/sitemap', 'urlSuffix'=>'.xml'),
您可以在 config/main 中修改您的 url 管理器.php这样,
'site/sitemap.xml'=>'site/sitemap',
'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]