Я установил многоязычный многоуровневый сайт Wordpress на сервере nginx (текущая английская страница еще не переведена, но скоро появится):
appscaptain.com
appscaptain.dk
Оба должны перенаправлять с www
к non-www
соответственно.
www.appscaptain.com
в настоящее время правильно перенаправляет на appscaptain.com
, но почему-то:
appscaptain.dk
иногда перенаправляет на appscaptain.com
иwww.appscaptain.dk
иногда не перенаправляет на appscaptain.dk
, но вместо этого appscaptain.com
.Странно, что это не происходит постоянно.
Может ли кто-нибудь заметить проблему в правиле Nginx?
server {
listen 80;
server_name appscaptain.com www.appscaptain.com appscaptain.dk www.appscaptain.dk;
rewrite ^ (.*) https: //appscaptain.com$1 permanent;
}
server {
listen 443 ssl http2;
server_name www.appscaptain.com;
return 301 https: //appscaptain.com$request_uri;
ssl_certificate / etc / nginx / auth - acme / appscaptain.com / appscaptain.com.crt;
ssl_certificate_key / etc / nginx / auth - acme / appscaptain.com / appscaptain.com.key;
ssl_session_cache shared: SSL: 10m;
ssl_session_timeout 10m;
ssl_prefer_server_ciphers on;
include / etc / nginx / conf / ssl - protocol - cipher.conf;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid = 300s;
resolver_timeout 30s;
ssl_trusted_certificate / etc / nginx / auth - acme / appscaptain.com / appscaptain.com.ca;
ssl_buffer_size 1400;
ssl_session_tickets on;
add_header Strict - Transport - Security max - age = 31536000;
access_log off;
access_log / home / appscaptain.com / logs / access_log;
error_log off;
error_log / home / appscaptain.com / logs / error.log;
add_header X - Frame - Options SAMEORIGIN;
add_header X - Content - Type - Options nosniff;
add_header X - XSS - Protection "1; mode=block";
}
server {
listen 443 ssl http2;
ssl_certificate / etc / nginx / auth - acme / appscaptain.com / appscaptain.com.crt;
ssl_certificate_key / etc / nginx / auth - acme / appscaptain.com / appscaptain.com.key;
ssl_session_cache shared: SSL: 10m;
ssl_session_timeout 10m;
ssl_prefer_server_ciphers on;
include / etc / nginx / conf / ssl - protocol - cipher.conf;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid = 300s;
resolver_timeout 30s;
ssl_trusted_certificate / etc / nginx / auth - acme / appscaptain.com / appscaptain.com.ca;
ssl_buffer_size 1400;
ssl_session_tickets on;
add_header Strict - Transport - Security max - age = 31536000;
access_log off;
access_log / home / appscaptain.com / logs / access_log;
error_log off;
error_log / home / appscaptain.com / logs / error.log;
add_header X - Frame - Options SAMEORIGIN;
add_header X - Content - Type - Options nosniff;
add_header X - XSS - Protection "1; mode=block";
root / home / appscaptain.com / public_html;
include / etc / nginx / conf / ddos2.conf;
index index.php index.html index.htm;
server_name appscaptain.com appscaptain.dk www.appscaptain.dk;
P.S. Он настраивается под 1 правилом nginx и одним каталогом wordpress, чтобы обеспечить работу сопоставления домена локализации (Polylang). Я не могу разделить его на два отдельных файла правил.
Попробуйте это, я делаю это неэффективным только для того, чтобы все было понятно, также вам нужно использовать другую конфигурацию на wordpress, чтобы тогда он мог принимать оба домена. Похоже, что-то не так с копипастом вашей конфигурации,
server {
listen 80;
server_name appscaptain.com www.appscaptain.com ;
rewrite ^ (.*) https://appscaptain.com$1 permanent;
}
server {
listen 80;
server_name appscaptain.dk www.appscaptain.dk;
rewrite ^ (.*) https://appscaptain.dk$1 permanent;
}
server {
listen 443 ssl http2;
server_name www.appscaptain.com;
return 301 https://appscaptain.com$request_uri;
..... >> SSL config to your ssl cert
}
server {
listen 443 ssl http2;
server_name www.appscaptain.dk;
return 301 https://appscaptain.dk$request_uri;
..... >> SSL config to your ssl cert
}
server {
listen 443 ssl http2;
server_name appscaptain.com appscaptain.dk;
.................. >>> Your config here including your index root
}