![htaccess SSL 重定向](https://linux22.com/image/506025/htaccess%20SSL%20%E9%87%8D%E5%AE%9A%E5%90%91.png)
目前,编码器在.htaccess文件中有以下行:
重写规则^registration$registration.php
我明白这意味着什么。
但是我还想将 domain.com/registration 重定向到 https://domain.com/registration
有人知道我该如何实现这一点吗?我不希望应用程序中的任何其他页面转到 https://...
问候,菲奥娜
答案1
您需要确保在执行重写之前流量尚未通过 HTTPS 进入,否则可能会陷入无限重写循环。
假设Apache 2.0及以上:
RewriteCond HTTPS 关闭 重写规则 ^/registration$ https://domain.com/registration.php
答案2
使用
RewriteRule ^/registration$ https://domain.com/registration.php
答案3
RewriteCond
这对于防止重定向循环是必要的。但当RewriteCond HTTPS off
Apache 位于 Nginx 后面时,有时是无用的。
我遇到过必须使用另一个 Apache 变量的情况:
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
现在,在 2023 年通过 HTTPS 为所有网站提供服务是一个不错的选择,但如果你仍然只想重定向一个页面,请编写
RewriteCond HTTPS off
RewriteRule ^/registration$ https://%{HTTP_HOST}/registration.php
如上所示或
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^/registration$ https://%{HTTP_HOST}/registration.php
如果您的 Apache 位于反向代理 (例如 Nginx) 后面。