2013-02-06 47 views
0
所有其他網頁

我有這個網站,example.com。我想要做的是在所有頁面上強制使用www,在一頁上強制使用https,在所有其他頁面上強制使用http。的.htaccess:在所有網頁上力WWW,強制使用HTTPS在一個頁面上,迫使HTTP上

我使用下面的.htaccess代碼到所有的HTTP流量重定向到www:

#Redirect to www 
RewriteCond %{HTTP_HOST} ^example.com$ [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] 

和下面的設置SSL對我的 「形式」 頁:

#Force SSL on a specific directory 
RewriteCond %{ENV:HTTPS} !on [NC] 
RewriteCond %{REQUEST_URI} form 
RewriteRule ^(.*)$ https://www.example.com/form/$1 [R,L] 

問題是,當我點擊https://example.com/時,它不會重定向到www(https://www.example.com),特別是不需要http和www(http://www.example.com)就像我想要的那樣。我試過這個:

#Redirect SSL to www 
RewriteCond %{ENV:HTTPS} on [NC] 
RewriteRule ^(.*)$ http://www.example.com$1 [R=permanent,L] 

但這是一個非常愚蠢的嘗試,並沒有奏效。我怎樣才能一次完成所有三個?

回答

0

試試這個:

# Handle nonSSL 
RewriteCond %{HTTPS} on 
RewriteRule !^/?form(/|$) http://www.ravicti.com%{REQUEST_URI} [L,R=301] 

# Handle SSL 
RewriteCond %{HTTPS} off 
RewriteRule ^/?form(/|$) https://www.ravicti.com%{REQUEST_URI} [L,R=301]  

# Add the missing www for both HTTP and HTTPS 
RewriteCond %{HTTP_HOST} ^ravicti.com$ [NC] 
RewriteCond %{HTTPS}:s (on:(s)|off:s) 
RewriteRule (.*) http%2://www.ravicti.com%{REQUEST_URI} [L,R=301] 
相關問題