【问题标题】:Redirect HTTPS to HTTP for one directory while ISAPI rewrite in place将一个目录的 HTTPS 重定向到 HTTP,同时 ISAPI 重写到位
【发布时间】:2016-02-10 08:11:08
【问题描述】:

我有一个网站 (example.com) 和一个博客 (externalblog.com),它们在外部托管并使用 ISAPI 重写进行反向代理。因此,如果您访问 www.example.com/blog,您实际上是在 externalblog.com 上,但 URL 被屏蔽了。

我已经在许多网站上使用了这个,但问题是父网站使用 HTTPS,而博客只有 HTTP。当访问者尝试访问旧链接时,博客文章将正常显示在 https 版本的 url 下,但样式表全部损坏并显示“无证书”警告。

我需要一个 htaccess 规则来做两件事:

  1. 将任何试图仅访问 https 版本的博客文章(即 www.example.com/blog 中的任何内容)的人转发到 http 版本。

  2. 将任何试图访问 example.com/blog(不带 www)的人转发到 http://www.example.com/blog,而不是当前使用的 https 版本。

但是,我希望这些规则只影响 www.example.com/blog 而对 example.com 没有其他影响。我目前在 example.com 上重写 ISAPI 的规则如下:

RewriteRule ^blog(.+)$ http://www.externalblog.com$1 [R=301,L]

这可以正常工作,并且基于名为“使用反向代理将 wordpress 博客拉入您的域”的在线文章 – 由于没有足够的声誉,我无法在此处添加更多链接。

任何帮助将不胜感激。

编辑:我尝试了以下

RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} ^[A-Z]+\s/blog [NC]
RewriteRule ^blog(.+)$ http://www.externalblog.com$1 [R=301,L]

这可以将 https 重写为 http - 但反向代理 URL 屏蔽不再起作用。

【问题讨论】:

  • 我有这个工作,但 IIS 一直无缘无故地暂停。如果我删除 HTTPS 引用并使用 HTTP,它不会暂停,但 Chrome 现在正在将所有 HTTP 转换为 HTTPS,并且在 Chrome 中不起作用。任何想法如何解决 IIS 上的这种暂停?

标签: iis reverse-proxy isapi-rewrite


【解决方案1】:

您的解释不清楚,如果我的回答与此无关,请见谅。我想您正试图将 www.example.com/blog 下的所有内容强制为 HTTPS,而不是 HTTP?然后试试这个规则:

RewriteEngine On

# HTTP to HTTPS redirect rule
RewriteCond %{HTTPS} off [NC]
RewriteCond %{HTTP:Host} ^www\.example\.com$ [NC]
RewriteRule ^(blog/.*)$ https://www.example.com/$1 [NC, R=301, L]

# No www. to www. redirect rule
RewriteCond %{HTTP:Host} ^example\.com$ [NC]
RewriteRule ^(blog/.*)$ https://www.example.com/$1 [NC, R=301, L]

# Your proxy rule goes here, I suppose it looks like:
RewriteRule ^blog(/.*)$ http://www.externalblog.com$1 [NC, P]

【讨论】:

  • 嗨 - 这似乎可以添加 www 和重写规则,但它不强制 https?
  • 抱歉,我以为您一直在要求在 www.example.com/blog 上强制 HTTP 强制 HTTPS 没有任何意义。应该在哪里?
  • 抱歉造成混淆,我们最初想直接访问 http 的博客,但现在我们为博客提供了安全证书。然后地址将是 example.com/blog 反向代理到 externalblog.com 所以现在我们想对博客上的所有链接强制使用 https,强制 www 并应用反向代理。希望这是有道理的:)
猜你喜欢
  • 2015-02-18
  • 1970-01-01
  • 2012-04-02
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
  • 2017-07-31
  • 2013-06-02
  • 1970-01-01
相关资源
最近更新 更多