20th
Авг

Правильный редирект 301 на nginx

Автор: admin | Рубрика: Полезное

Если Вам приспичило перенести сайт на новый домен и Вы юзаете nginx, то пред Вами встанет одна маленькая проблемка.

Как сделать 301 редирект на другой хост, причем, так, чтобы robots.txt читался на старом хосте.

Рецеп, как оказалось прост:

server {
   listen SERVER_IP;
   server_name WWW.DOMAIN.RU DOMAIN.RU;
   root /home/www/DOMAIN.RU;
   index index.php index.html index.htm;

   if ( $request_uri !~* ^/robots.txt$  ){
     rewrite ^(.*)$ http://NEWDOMAIN.RU$1 permanent;
   } 
  
   charset        UTF-8;
   source_charset UTF-8;
 
   location / {

   }
   location ~ \.(php|htm|html)$ {
       fastcgi_pass 127.0.0.1:9000;
       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME /home/www/DOMAIN.RU$fastcgi_script_name;
       include /usr/local/nginx/conf/fastcgi_params;
   }

}