#元のリクエストがsslかどうか set $redirect_ssl $scheme; #/sslcontentへのアクセスはSSLにリダイレクト if ($request_uri ~ "^/sslcontent/?$") { set $redirect_ssl "${redirect_ssl}tos"; } #静的ファイルはリダイレクトしない if ($request_filename ~ "\.(less|txt|css|js|jpg|jpeg|gif|ico|png|bmp|pict|csv|doc|pdf|pls|ppt|tif|tiff|eps|ejs|swf|midi|mid|ttf|eot|woff|otf|svg|svgz|webp|docx|xlsx|xls|pptx|ps|class|jar)$") { set $redirect_ssl "ignore"; } location / { #... if ($redirect_ssl = "httptos") { return 301 https://$host$request_uri; } # 他のページに移動したらhttpにリダイレクト if ($redirect_ssl = "https") { return 301 http://$host$request_uri; } #... }
値をsetするだけでreturnもrewriteもしない部分をlocation の中に書くとtry_filesが効かなくなったりいろいろヤバイ