Мне нужно всегда заменять domain.com на www.domain.com и принудительно устанавливать https, поэтому конечный результат всегда должен быть https://www.domain.com при запросе domain.com или www.domain.com. Я попробовал следующее веб-сайт все еще доступен с https, но www не форсируется:
.htaccess
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Nginx
server {
listen 80;
server_name domain.com;
return 301 $scheme://www.domain.com$request_uri;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name www.domain.com;
root /path/to/project;
location / {
try_files $uri /app.php$is_args$args;
}
location ~ ^/(app_dev|config)\.php(/|$) {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
}
location ~ ^/app\.php(/|$) {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
location ~ \.php$ {
return 404;
}
location ~ /\. {
deny all;
}
location ~ /.well-known {
allow all;
}
error_log /path/to/error.log;
access_log /path/to/access.log;
}
server {
listen 443 ssl;
server_name www.domain.com;
..rest of code..
}
nginx другой подход
server {
listen 80;
server_name domain.com;
rewrite ^ https://www.domain.com$request_uri? permanent;
}
и несколько других подходов, найденных в поиске, но, кажется, ничего не работает для меня, я был бы признателен за любую помощь. Заранее спасибо.