Nginxでhttpsにリクエストをリダイレクトしようとしていますが、でない限り、Host/ANY_STRING_OF_CHARS/END_OF_URIの形式です(例:
http://Host.org/about #リダイレクトなし
http://Host.org/users/sign_in #リダイレクト先 https://Host.org/users/sign_in
これは明らかにApacheで機能しますが、強打の仕組みがわかりません(実際に機能しない場合は無視してください)。
RewriteRule !/([a-z]+)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
Nginx書き換えルールでこれを行うにはどうすればよいですか?これは私が望んだように機能していません:
rewrite !/([a-z]+)$ https://$server_name$request_uri redirect;
逆のロジックがあった場合に備えて、これもリダイレクトを行いません。
rewrite /([a-z]+)$ https://$server_name$request_uri redirect;
助けてください?
クライアントに永続的なリダイレクトを送信します。
server {
listen 80;
rewrite ^(/users/\w+)$ https://$Host$1 permanent;
...
}
否定的な一致の場合、次のように使用できます。
if ($request_uri !~ "^/users/\w+$")
{
return 301 https://$Host$request_uri;
}
set $test "0";
if ($request_uri ~ "condition") {
set $test "1";
}
if ($test ~ "0") {
return 301 redirect url;
}