colonel
@colonel
Разработчик PHP, Laravel

Laravel динамический robots.txt плюс nginx php-fpm не работает?

Используем динамический robots.txt, текст которого хранится в БД и настраивается в админке.

В Laravel прописан rout для этого:
Route::get('/robots.txt', function(){
    $settings = \App\Block::where('kind', 'robots.txt')->first();
    $fileText = $settings->code;
    $headers = ['Content-type'=>'text/plain','Content-Length'=>sizeof($fileText)];
    return Response::make($fileText, 200, $headers);
});


Но не работает через nginx + php-fpm
  • Вопрос задан
  • 1365 просмотров
Пригласить эксперта
Ответы на вопрос 2
v_decadence
@v_decadence
Что и как именно не работает?
Может у вас существует реальный файл robots.txt и nginx его отдаёт в первую очередь. В таком случае нужно его удалить.
Ответ написан
@iljaGolubev
1. В конфиге nginx для этого сайте не должно быть строки location = /robots.txt { access_log off; log_not_found off; }
2. Route with Streamed Downloads
Route::get('/robots.txt',function(){
   return  response()->streamDownload(function () {
       echo \App\Block::where('kind', 'robots.txt')->first()->code;
   }, 'robots.txt', ['Content-Type'=>'text/plain'],'inline');
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы