http to https rewrite, non-standard port?
Quincy
nginx-forum at nginx.us
Wed Aug 3 08:20:39 UTC 2011
I have the same problem. I can't redirect http to https. Here is my
config:
server {
listen 2121;
server_name XXXXX;
ssl on;
ssl_certificate XXt;
ssl_certificate_key XX;
#server_name _;
server_name_in_redirect off;
port_in_redirect off;
root XXX;
location / {
index index.php;
error_page 404 = @mediawiki;
error_page 497 = @https;
#error_page 400 = @https;
error_page 400 https://$host:2121$request_uri;
auth_basic "Restricted";
auth_basic_user_file XXXX;
}
location @mediawiki {
rewrite ^/([^?]*)(?:\?(.*))? /index.php?title=$1&$2 last;
}
location @https {
rewrite ^ https://$host:2121$request_uri? permanent;
}
location ~ \.php$ {
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME XXXX/$fastcgi_script_name;
fastcgi_param HTTPS on;
}
}
Https is working flawlessly, but when I try http I get an error (400 Bad
Request
The plain HTTP request was sent to HTTPS port
nginx/1.0.5) instead of redirect.
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,155978,213274#msg-213274
More information about the nginx
mailing list