rewrite to HTTPS?

Guillaume Filion gfk at logidac.com
Wed Mar 17 17:59:35 MSK 2010


Silly me, should have RTFM:
http://wiki.nginx.org/NginxHttpRewriteModule#rewrite

This fixes the problem:
rewrite "^/p/([AH][0-9]{4})/(.+)$"
https://my.host.name/path/to/profil/?a=$1&c=$2 redirect;

Guillaume Filion a écrit :
> Hi all,
> 
> I'd like to make a rewrite rule to redirect the client to an HTTPS page,
> so that a user is redirected from:
> http://host.name/p/A2010/TExfDqN5cPi/b7i8UDhqgx3rmXlc+yv+T7hmxuykWGENpg==
> to:
> https://my.host.name/path/to/profil/?a=A2010&c=TExfDqN5cPi/b7i8UDhqgx3rmXlc%2byv%2bT7hmxuykWGENpg==
> but I'm getting a "400 Bad Request" from nginx when I try to send them
> to the HTTPS site.
> 
> This works (returns a "302 Moved Temporarily"):
> rewrite "^/p/([AH][0-9]{4})/(.+)$"
> http://my.host.name/path/to/profil/?a=$1&c=$2 break;
> 
> This doesn't (returns a "400 Bad Request"):
> rewrite "^/p/([AH][0-9]{4})/(.+)$"
> https://my.host.name/path/to/profil/?a=$1&c=$2 break;
> 
> Could someone shed some light on this?
> 
> Thanks a lot!
> GFK's
> 
> Here's my sanitized config:
> server {
>   listen 1.2.3.4:80;
>   server_name my.host.name;
>   proxy_connect_timeout 2;
>   client_max_body_size 4M;
>   access_log /var/log/nginx/my.host.name_HTTP.access.log;
>   error_log /var/log/nginx/my.host.name_HTTP.error.log;
> 
>   location / {
>     proxy_next_upstream error timeout invalid_header http_500;
>     proxy_set_header X-Real-IP $remote_addr;
>     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>     proxy_set_header Host $http_host;
> 
>     # Profil
>     rewrite "^/p/([AH][0-9]{4})/(.+)$"
> https://my.host.name/path/to/profil/?a=$1&c=$2 break;
> 
>     proxy_pass http://BACKEND;
>   }
> }
> 
> server {
>   listen 1.2.3.4:443;
>   server_name my.host.name;
>   client_max_body_size 4M;
>   access_log /var/log/nginx/my.host.name_HTTPS.access.log;
>   error_log /var/log/nginx/my.host.name_HTTPS.error.log;
> 
>   ssl on;
>   ssl_certificate /etc/nginx/certs/my.host.name.crt;
>   ssl_certificate_key     /etc/nginx/certs/my.host.name.pem;
>   ssl_protocols SSLv3 TLSv1;      ssl_ciphers
> ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP;
> 
>   location / {
>     proxy_next_upstream error timeout invalid_header http_500;
>     proxy_set_header SSL Enabled;
>     proxy_set_header X-Real-IP $remote_addr;
>     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>     proxy_set_header Host $http_host;
> 
>     proxy_pass http://BACKEND;
>   }
> }
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://nginx.org/mailman/listinfo/nginx


-- 
Guillaume Filion
http://guillaume.filion.org/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 259 bytes
Desc: OpenPGP digital signature
URL: <http://nginx.org/pipermail/nginx/attachments/20100317/1ed6f017/attachment.pgp>


More information about the nginx mailing list