2016-03-24 2 views
2

Я создал динамический sitemap.xml маршрут с laravel, который возвращает xml-ответ.Laravel route works, но возвращает статус 404

Маршрут работает на браузере, но он возвращает 404 статус.

Это единственный путь, который возвращает 404 Статус

Это заголовки:

Cache-Control →no-cache 
Connection →keep-alive 
Content-Length →232 
Content-Type →text/xml; charset=UTF-8 
Date →Thu, 24 Mar 2016 09:44:35 GMT 
Server →nginx/1.9.12 

Это маршрут:

Route::get('sitemap.xml', ['as' => 'sitemap.index', 'uses' => 'SitemapController[email protected]']); 

Это является контроллером г ответ:

$response = response()->view('sitemaps.index', [ 
     'last' => $data, 
     'modules' => $modules, 
     'app'  => $app, 
    ])->header('Content-Type', 'text/xml'); 

    $response->header('Content-Length',strlen($response->getOriginalContent())); 

    return $response; 

Вид:

<?xml version="1.0" encoding="UTF-8"?> 
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
@foreach($modules as $module) 
    <sitemap> 
     <loc>{{ url('sitemap-' . $module . '.xml') }}</loc> 
     <lastmod>{{ $last[$module]['updated_at'] or date('Y').'-01-01'}}</lastmod> 
    </sitemap> 
@endforeach 

Спасибо.

ответ

0

Это была проблема с Nginx.

Я добавил этот код на мой конфигурационный файл и теперь он работает:

location = /sitemap.xml { 
    try_files $uri $uri/ /index.php?$query_string; 
    access_log off; 
    log_not_found off; 
} 

И я удалил <?xml version="1.0" encoding="UTF-8"?> от ответа.

Смежные вопросы