将一页重定向到 http 而不是 https

Posted

技术标签:

【中文标题】将一页重定向到 http 而不是 https【英文标题】:Redirect One Page to http instead of https 【发布时间】:2019-06-24 11:49:07 【问题描述】:

我有如下所示的 .htaccess 文件,用于强制 https 访问我的所有页面。

RewriteEngine On 
RewriteCond %SERVER_PORT 80
RewriteCond %HTTP_HOST ^(www\.)?example\.net
RewriteRule ^(.*)$ https://www.example.net/$1 [R,L]

根据我的要求,它工作正常。现在我想为我的一个名为 demo.html 的页面排除 https 我不想要https。 它的需要

http://example.net/demo.html 

而不是

https://example.net/demo.html

【问题讨论】:

希望该页面重定向到 https,还是希望该页面重定向到 http 而所有其他页面都使用 https? 【参考方案1】:

您需要为其添加RewriteCond 条件。

检查以下代码:

RewriteEngine On 
RewriteCond %SERVER_PORT 80
RewriteCond %HTTP_HOST ^(www\.)?example\.net
RewriteCond %REQUEST_URI !^/demo\.html$ [NC]
RewriteRule ^(.*)$ https://www.example.net/$1 [R,L]

【讨论】:

【参考方案2】:

你可以像这样在相同数量的行中做到这一点:

RewriteEngine On 
RewriteCond %SERVER_PORT 80
RewriteCond %HTTP_HOST ^(?:www\.)?(.+)$ [NC]
RewriteRule !^demo\.html$  https://www.%1%REQUEST_URI [L,R]

如果没问题,请将R 更改为R=301 以获得永久重定向,因为单独R 将被视为R=302 并且该临时重定向。

【讨论】:

以上是关于将一页重定向到 http 而不是 https的主要内容,如果未能解决你的问题,请参考以下文章

使用 SSL 避免登录页面重定向

HTACCESS-将旧页重定向到新页

将404错误页重定向到任意页

如何使用 301 重定向而不是 302 将 HTTP 站点重定向到 HTTPS 站点

基于位置选择的着陆页重定向(Cookie?)[关闭]

为啥 IdentityServer 重定向到 http 而不是 https?