【问题标题】:How to force http- NOT https using htaccess如何使用 htaccess 强制 http-NOT https
【发布时间】:2012-05-08 12:28:25
【问题描述】:

我想要强制使用 https 的整个域都有一个目录,即“/docs”。在 /docs 文件夹中,我有以下 htaccess 文件:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这会强制 https 访问 /docs 目录中的所有内容,这正是我想要的。我遇到的问题是试图强制 REMOVE https 回到我网站的所有其他区域的 http。在站点的根文件夹(运行 wordpress)中,我有以下 htaccess 文件:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/docs/?.*$
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]

很遗憾,这不起作用。我仍然可以通过 https 访问我网站的其他区域。

我需要进行哪些更改才能使其正常工作?

【问题讨论】:

    标签: html wordpress http .htaccess https


    【解决方案1】:

    由于接受的答案实际上并没有回答问题,我想我会发布我的解决方案。将此添加到您的 .htaccess 文件以强制使用 HTTP 而不是 HTTPS:

    # BEGIN Force HTTP
    RewriteEngine On
    RewriteCond %{SERVER_PORT} 443
    RewriteRule ^(.*)$ http://yourdomain.com/$1 [R=301,L]
    # END Force HTTP
    

    【讨论】:

    • 感谢 rog 回答所提出的问题。 ;)
    • 这不起作用,如果 HTTPS 版本没有有效的证书。 (因为浏览器的证书警报总是在 Apache 重写之前出现。)
    • @TamásBolvári 有效点,但是问题提到他们已经使用了有效的证书。
    • @RezaS 虽然我同意您关于每个人都应该使用 HTTPS 的评估,但我认识到有时不常见的边缘情况需要非正统的解决方案。我不认为知道什么对每个人都是最好的,所以我会尽量回答被问到的问题。从这个答案收到的投票来看,似乎有些人觉得这很有用。这是我第一次因正确回答所提问题而遭到反对。
    • 我尝试使用这个答案,但在我将这些行放在 .htaccess 文件中已经存在的其他一些行之后它不起作用,但仔细检查,这些行正在执行与 URL 相关的更多任务所以我改变了在开头定位它们的新行的位置,“瞧”!它奏效了。
    【解决方案2】:

    试试 Wordpress 的 Force 非 SSL 插件。

    【讨论】:

    • 如果要成为 SSL 的目录在 WordPress 目录之外,这会起作用吗?
    【解决方案3】:

    “WordPress Force HTTP”插件是唯一对我有用的东西。它不仅像大多数答案一样将首页的 https 更改为 http,而且还将您网站中所有子目录的 https 更改为 http。

    https://en-au.wordpress.org/plugins/wp-force-http/

    【讨论】:

      【解决方案4】:

      为什么需要恢复到 http?如果您拥有正确的 SSL 证书,您不妨确保您的访问安全。除非您担心系统上的负载。

      我知道这不是在回答问题,但我想强调的是,问题是关于如何做不好的做法,这是不应该做的首先。

      【讨论】:

      • 系统加载,部分图片和javascript会混合http/https等
      • 使用相对 URI 来避免混合安全级别的问题(//example.com/foo/bar.jpeg,如果您需要更改主机)。
      猜你喜欢
      • 1970-01-01
      • 2016-06-27
      • 1970-01-01
      • 2017-05-24
      • 1970-01-01
      • 2013-10-14
      • 2012-06-17
      • 2012-07-11
      • 1970-01-01
      相关资源
      最近更新 更多