我已經有這樣的代碼來強制這些URL以HTTPS:使用的.htaccess強制HTTP或HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/my/?.*$
RewriteCond %{REQUEST_URI} !^/my/basket/add?.*$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/login/?.*$
RewriteCond %{REQUEST_URI} ^/logout/?.*$
RewriteCond %{REQUEST_URI} ^/register/?.*$
RewriteCond %{REQUEST_URI} ^/newsletter/?.*$
RewriteCond %{REQUEST_URI} ^/reset-password/?.*$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
而這個作品真的很好,但我想要做的是強迫任何網址不是符合上述條件以HTTP,發射一個301.
我不想創建一個HTTP
頁面的列表並重定向他們,就像我上面的HTTPS
。安全網頁的URL將始終保持不變,除非我以某種方式更改系統,但我可以在需要時更新它們。非安全頁面可以通過動態創建,並由一些銷售團隊在這裏創建/編輯,因此需要智能地定位這些頁面。
有關我如何做到這一點的任何想法?它有要使用.htaccess
完成,我一直通過在我們的PHP框架內處理它來實現這一目標,但這導致了相當顯着的性能問題,並導致我們的Google抓取出現問題。
乾杯!
好吧,我明白了,我的HTTPS''RewriteRule'上的'L'標誌表示,如果有匹配,我們使用HTTP,那麼我們重定向,這是最後一條規則處理。但是如果我們已經在使用HTTPS呢?它會忽略我的原始條件並重定向回HTTP ......不是嗎? – 2010-04-14 09:59:58
實際上,當我測試它時,它永遠不會將任何內容重定向到HTTPS,而總是重定向到HTTP。 – 2010-04-14 10:04:14
你是對的,你將不得不爲安全頁面添加一個條件(將需要一些重複的東西)。請參閱編輯。 – Kazar 2010-04-14 10:11:23