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