Update:

I just want to redirect specific URL contains `/go/*` to HTTP, and force
others to HTTPS.

On 10/14/2014 12:03 PM, Dewangga Bachrul Alam wrote:
> Hi,
> 
> Today, I was implement redirect using return 301, here's my snippet:
> 
> server {
>         listen 80;
>         server_name domain.tld;
>         error_log       /dev/null;
>         access_log      off;
>         return 301 https://www.domain.tld$request_uri;
> }
> 
> server {
>       listen 80;
>       server_name www.domain.tld;
>         error_log       /dev/null;
>         access_log      off;
> 
> location ^~ /go/ {
>       # Apache2 Backend
>       proxy_pass http://127.0.0.1:8080
> }
> location / {
>       return 301 https://$http_host$request_uri$is_args$query_string;
> }
> }
> 
> server {
>         listen 443 ssl spdy;
>         server_name     domain.tld;
>         return 301 https://www.domain.tld$request_uri;
> 
>         error_log       /dev/null;
>         access_log      off;
> 
>         ssl on;
>         ssl_certificate         bundle.crt;
>         ssl_certificate_key     file.key;
>         ssl_verify_depth 2;
> }
> 
> server {
>       listen 443 ssl spdy;
>       server_name www.domain.tld;
> location ^~ /go/ {
>       return 301 http://$http_host$request_uri;
> }
> location / {
>       # Apache2 Backend
>       proxy_pass http://127.0.0.1:8080
> }
> }
> 
> The problem is, if the visitor hit `/go/` URL, the browser says it's
> redirect loop, but if I try `curl -I` command the `/go/` URL, it's
> normal, and says HTTP 200.
> 
> Any hints? Really appreciate any helps.
> 

_______________________________________________
nginx mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx

Reply via email to