Я пытаюсь настроить перенаправление 301 для всех доменов, размещенных на моем сервере Nginx, и все попытки заставить его работать пока не увенчались успехом. Моя конфигурация Nginx ниже.
Файл: / и т.д. / Nginx / сайты-доступные / все-мои-сайты
# 301 Redirects
server {
server_name www.example1.com;
return 301 $scheme://example1.com$request_uri;
}
server {
server_name www.example2.com;
return 301 $scheme://example2.com$request_uri;
}
# The Real Deal
server {
listen 80;
server_name example1.com example2.com;
[...]
}
Я также пробовал эти конфигурации безрезультатно.
# 301 Redirects
server {
listen 80;
server_name www.example1.com;
return 301 $scheme://example1.com$request_uri;
}
server {
listen 80;
server_name www.example2.com;
return 301 $scheme://example2.com$request_uri;
}
# The Real Deal
server {
listen 80;
server_name example1.com example2.com;
[...]
}
и
# 301 Redirects
server {
listen 80 default_server;
server_name www.example1.com;
return 301 $scheme://example1.com$request_uri;
}
server {
listen 80 default_server;
server_name www.example2.com;
return 301 $scheme://example2.com$request_uri;
}
# The Real Deal
server {
listen 80 default_server;
server_name example1.com www.example1.com example2.com www.example2.com;
[...]
}
Что я делаю не так? Я действительно понятия не имею. (Я старался изо всех сил, гуглил и ссылался на документацию.)
ОБНОВИТЬ: На самом деле, www.example2.com просто перенаправляет на example2.com. Но www.example1.com - нет. Это странно, и я до сих пор понятия не имею.
Конфигурация Nginx действительно правильная. Проблема в моей конфигурации DNS. Я использовал сопоставление поддоменов с подстановочными знаками для A
и AAAA
записи на example1.com (например, *.example.com A 123.456.67.8
), когда в ней УЖЕ есть TXT
запись для www.example1.com
.
Вы не можете сопоставить поддомен с подстановочными знаками, если один из поддоменов для этого домена уже имеет запись DNS!
Я предполагаю, что вы хотите перенаправить свои домены с www на не www.
Если это так, вы можете попробовать следующий способ, который я уже использую в своей конфигурации nginx.
server {
listen 80;
server_name www.example1.com;
rewrite ^(.*) http://example1.com$1 permanent;
}