Как я могу перенаправить mydomain.com и любой поддомен *.mydomain.com на www.adifferentdomain.com, используя NGINX?
mydomain.com
*.mydomain.com
www.adifferentdomain.com
имя_сервера поддерживает совпадения суффиксов с использованием синтаксиса .mydomain.com:
server { server_name .mydomain.com; rewrite ^ http://www.adifferentdomain.com$request_uri? permanent; }
или в любой версии 0.9.1 или выше:
server { server_name .mydomain.com; return 301 http://www.adifferentdomain.com$request_uri; }
http://wiki.nginx.org/HttpRewriteModule#return
и
http://wiki.nginx.org/Pitfalls#Taxing_Rewrites
Зачем использовать модуль перезаписи, если вы можете сделать return? С технической точки зрения, return является частью модуля перезаписи, как , вы можете прочитать здесь , но этот фрагмент легче читать imho.
return
server { server_name .domain.com; return 302 $scheme://forwarded-domain.com; }
Вы также можете сделать переадресацию 301.
Это должно работать через HTTPRewriteModule .
Пример переписать с www.example.com на example.com:
server { server_name www.example.com; rewrite ^ http://example.com$request_uri? permanent; }
Если вы хотите перенаправить запросы для «domain1.com» на «domain2.com», вы можете создать блок сервера, который выглядит следующим образом:
server { listen 80; server_name domain1.com; return 301 $scheme://domain2.com$request_uri; }
Временное перенаправление
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? redirect;
Постоянное перенаправление
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? permanent;
В файле конфигурации nginx для конкретного сайта:
server { server_name www.example.com; rewrite ^ http://www.RedictToThisDomain.com$request_uri? redirect; }