2012-04-12 20 views
0

我想在同一臺服務器上從http移動到https。所有頁面,文件等都需要轉發到https,除了使用iFrame嵌入在幾個網站上的四個頁面。由於https不能包含在iframe中,我想離開這些但添加其他所有內容。301 htaccess重定向一切,但現有網頁

我在htaccess上玩了一個多小時,但沒有成功。最新的試用如下。但在這個例子中,我需要自己寫下文件。我想將http服務器上不存在的所有內容轉發給https服務器,並保持原樣。

RewriteCond %{HTTPS} = off 
RewriteCond $1 !^(inschrijven-frame|inschrijven-frame2)\.php$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ https://www.url.nl/$1 [R=301,L] 

什麼需要做的是:

  1. 如果該文件是在HTTP上打開它。
  2. 如果文件不是HTTP,轉到HTTPS,所以http://www.url.com/test.php自動成爲未在2發現https://www.urlcom/test.php
  3. 頁,應被轉發到去對HTTPS主域名
+1

** 1)**此行錯誤'RewriteCond%{HTTP} = on' - 它應該是'RewriteCond%{HTTPS} =關閉[NC] ** 2)**您使用錯誤的字符對於OR正則表達式邏輯 - 應該是'|'而不是'|'。 – LazyOne 2012-04-12 13:18:09

+0

感謝LazyOne,如果http文件在那裏,您是否也有建議不要去https? – mat 2012-04-13 06:41:53

+0

使用這個:'RewriteCond%{REQUEST_FILENAME}!-f'。解釋/文檔在這裏:http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond – LazyOne 2012-04-13 08:40:51

回答

0

我想我解決了它。這個可以嗎?

RewriteEngine on 
RewriteBase/

RewriteCond %{SERVER_PORT} 443 
RewriteRule ^(page1|page2|test1|test2)\.php$1 [R,L] 

RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} !^/ipage 
RewriteCond %{REQUEST_URI} !^/test 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

@LazyOne如果您發佈的答案我可以接受它。