使用 YII 获取带有 .xml 的路径名



我有一个名为"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]

最新更新