Redirect loop problems
Dewangga Bachrul Alam
dewanggaba at xtremenitro.org
Tue Oct 14 05:37:33 UTC 2014
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.
>
More information about the nginx
mailing list