将 HTTPS 重定向到 HTTP,特定 URL 除外

Tom*_*Tom 1 https .htaccess redirect apache-2.2

我们想将所有 HTTPS 流量重定向到 HTTP,除了特定的 URL /user/login

到目前为止,我们有:

RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^user/login(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
Run Code Online (Sandbox Code Playgroud)

但它会导致重定向循环,当它重定向回 HTTP 时

Vla*_*kov 5

这样的事情应该工作:

RewriteEngine on
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/user/login
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
Run Code Online (Sandbox Code Playgroud)

但这对我来说没有多大意义。如果您仅通过 SSL 将请求重定向到 /user/login 并保留其他所有内容,那会更好:

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule /user/login(.*) https://%{HTTP_HOST}/user/login$1 [R,L]
Run Code Online (Sandbox Code Playgroud)