Делаю контроллер для карты сайта (sitemap).
Идея такая: если обратиться к
/sitemap - выдается sitemapindex.
Если обратиться к
/sitemap/type.xml - выдается urlset
Для этого я прописал в конфиг:
'urlManager' => [
...
'rules' => [
'/sitemap/<file>' => 'sitemap/index',
....
]
Таким образом, в контроллер sitemap я получаю $file в котором лежит нужный тип записей для вывода в urlset
В контроллере делаю:
public function actionIndex( $file = 0 )
{
// Заголовок Content-Type XML
Yii::$app->response->format = \yii\web\Response::FORMAT_RAW;
$headers = Yii::$app->response->headers;
$headers->set('Content-Type', 'text/xml');
if(!$file) {
// Здесь вывожу sitemapindex;
return;
}
// Здесь вывожу urlset для нужного $file
}
Проблема:
Если обратиться к
/sitemap - все ОК, заголовок
Content-Type: text/xml есть
Если обратиться к
/sitemap/type.xml - заголовок
Content-Type не отправляется (т.е. не меняется, - шлет "text/html")