0
저는 Nginx를 처음 사용하고 하위 도메인을 올바르게 처리하는 방법을 찾으려고합니다. 달성하고자하는 것은 메인 도메인 example.com
은 항상 https://www.example.com
으로 리디렉션되지만 서브 도메인은 sub.example.com
이어야하며 https://sub.example.com
으로 항상 리디렉션되어야합니다. 현재 설정에서는 첫 번째 요구 사항이 충족되지만 sub.example.com
은 항상 https://www.sub.example.com
으로 리디렉션됩니다. 구성상의 문제점은 무엇이며 어떻게 해결할 수 있습니까?nginx - 기본 도메인 만 www가 아닌 하위 도메인으로 리디렉션합니다.
미리 감사드립니다. Fabian.
내 두 개의 서버 설정 파일 :
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 301 https://www.$host$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /path/on/my/server/to/certificate.pem;
ssl_certificate_key /path/on/my/server/to/privatekey.pem;
return 301 https://www.$host$request_uri;
}
server {
listen 443 default_server ssl http2;
listen [::]:443 default_server ssl http2;
server_name www.example.com;
ssl_certificate /path/on/my/server/to/certificate.pem;
ssl_certificate_key /path/on/my/server/to/privatekey.pem;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
location/{
try_files $uri $uri/ =404;
index index.php index.html index.htm;
}
}
하위
기본
server {
listen 80;
listen [::]:80;
server_name sub.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name sub.example.com;
ssl_certificate /path/on/my/server/to/subcertificate.pem;
ssl_certificate_key /path/on/my/server/to/subprivatekey.pem;
root /var/www/sub;
location/{
index index.php index.html index.htm;
try_files $uri = 404;
}
location ~ \.php$ {
try_files $uri = 404;
include fastcgi_params;
fastcgi_pass unix:/var/run/php7-fpm-web1.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
}
귀하의 현재 구성도'www.example.com'을'www.www.example.com'으로 리디렉션합니다. 'sub' 설정 파일이로드되고있는 것이 확실합니까? 시도해보십시오 :'nginx -t'와'nginx -T' –
예, 구성 파일이로드되고 이상하게도 브라우저 캐시를 지운 후에 작동합니다 ... – FTFT1234