Задать вопрос
@Sys3X

Как перенаправить поисковик на HTML файл через nginx?

Друзья, помогите с таким вопросом.
Мне нужно, чтобы поисковикам показывалась определенная страница file.html, тогда как пользователь будет видеть обычный сайт. При этом нужно сохранить доступ к robots.txt - именно это у меня получилось, но когда поисковик заходит на главную nginx выдает 500 ошибку:

[error] 13833#0: *1 rewrite or internal redirection cycle while processing "/file.html",

server {
  access_log /var/log/nginx/access.log main;
  error_log  /var/log/nginx/vhost-error_log warn;
  listen 80;
  listen 443;
  server_name www.site.biz site.biz;
 
  location / {

# Если поисковик - присваиваем значение T
if ($http_user_agent ~* ".*Googlebot.*"){
    set $RW T;
}

# Если в запросе robots.txt - не перенаправлять, значение F

if ($request_uri ~ .*.robots.*) {
     return 200 "User-agent: *\nAllow: /\nHost: https://www.site.biz";
    set $RW F;
    }

# Если другой запрос - направляем на file.html. Именно эта строка реврайта вызывает ошибку!

    if ($RW = T)
{
rewrite ^ /file.html;
}


   error_page 503 /503.html;
   error_page 500 /500.html;
   client_max_body_size    10m;
   client_body_buffer_size 128k;

   proxy_send_timeout   90;
   proxy_read_timeout   90;

   proxy_buffer_size    4k;
   proxy_buffers 80 32k;
   proxy_busy_buffers_size 64k;
   proxy_temp_file_write_size 64k;
   proxy_connect_timeout 10s;

   proxy_redirect  off;

   proxy_pass   http://127.0.0.1:8083;

   proxy_set_header   Host   $host;
   proxy_set_header   X-Real-IP  $remote_addr;
   proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
}
}


Что я делаю не так?
Благодарю всех и надеюсь на помощь.
  • Вопрос задан
  • 152 просмотра
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@Sys3X Автор вопроса
Разобрался.
Нужно было вот так:

rewrite ^ /file.html break;
Ответ написан
Ваш ответ на вопрос

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

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