Я пытался понять это на некоторое время.перенаправить весь трафик на https: // www. на nginx
Я хотел бы перенаправить весь трафик на https независимо от того, что пользователь помещает в строку url.
Из-сессий он либо нуждается, чтобы быть всегда NO-WWW или Всегда с WWW
Вот мой текущий Nginx конфигурации.
Какое изменение я должен сделать, чтобы перенаправить все до https?
server {
listen 80;
listen 443;
server_name example.com www.example.com;
access_log /var/log/nginx/example-access.log;
error_log /var/log/nginx/example-error.log;
root /var/www/html/web;
index index.html index.htm index.php;
location/{
try_files $uri $uri/ /index.php$uri?$args;
}
rewrite ^/backend\.php/?(.*)$ /$1 permanent;
location /admin {
index admin content backend.php;
try_files $uri @rewriteapp;
}
location @rewriteapp {
rewrite ^(.*)$ /backend.php/$1 last;
}
location ~ "^(.+\.php)($|/)" {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
}
У Serverfault есть [наиболее полный ответ] (http://serverfault.com/questions/67316/in-nginx-how-can-i-rewrite-all-http-requests-to-https-while-maintaining- sub-dom), идея состоит в том, чтобы сопоставить 'server_name' как с WWW, так и с NON-WWW, а затем возвращать 301 https //: ...' для всего сервера. По сути вам нужны два блока сервера. – grochmal
Страница не перенаправляется должным образом Firefox установил, что сервер перенаправляет запрос на этот адрес таким образом, который никогда не будет завершен. Эта проблема иногда может быть вызвана отключением или отказом принимать файлы cookie. - очистить файлы cookie без разницы – smugford
Я добавил ответ, потому что он слишком большой для комментария. См. Примечание в ответе, '301' довольно опасно для тестирования, потому что браузер помнит об этом и не выдаст другой GET (или POST) URL-адресу, для которого он получил' 301'. – grochmal