2016-02-10 67 views
0

我有一個網站(example.com)和外部託管的博客(externalblog.com),並使用ISAPI重寫進行反向代理。因此,如果您訪問www.example.com/blog,您實際上位於externalblog.com上,但URL被屏蔽。重定向HTTPS到一個目錄的HTTP,而ISAPI重寫的地方

我有很多網站的工作,但問題是當父網站使用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屏蔽不再踢!

回答

0

你的解釋還不太清楚,如果我的答案不相關,那麼很抱歉。我想你試圖強制在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] 
+0

嗨 - 這似乎工作儘可能添加www和重寫規則,但它不強制https? – Paul

+0

對不起,我以爲你一直在要求在www.example.com/blog上強制HTTP,強制HTTPS沒有任何關係。它應該在哪裏? – Yaroslav

+0

對不起,我們最初想直接訪問http的博客,但現在我們有一個安全的博客證書。 地址將https://www.example.com/blog反向代理到https://externalblog.com 所以現在我們想強制https在博客上的所有鏈接,強制www以及應用反向代理。希望有道理:) – Paul