2012-03-15 13 views
3

以下のコードは、自分のウェブサイトの訪問者をwww.domain.comにリダイレクトするリダイレクトスクリプトです(たとえばif彼らはdomain.comまたはsomesub.domain.comにあります)。入力したリンクやホットなリンクに応じて、HTTPSまたはHTTPにリダイレクトするように変更しました。* .domain.comをwww.domain.comにリダイレクトするHTTPまたはHTTPSプレフィックス

これは機能していますが、これを行う簡単な方法があるか、改善の余地があると思います。誰かがこれをチェック/コメントすることができますか?事前に多くの感謝。あなたの答えのための

# redirect any HTTP traffic that is not http://www.domain.com/* 
RewriteEngine On 
RewriteCond %{SERVER_PORT} ^80$ 
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L] 

# redirect any HTTPS traffic that is not https://www.domain.com/* 
RewriteEngine On 
RewriteCond %{SERVER_PORT} ^443$ 
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC] 
RewriteRule ^(.*)$ https://www.domain.com/$1 [R=301,L] 

答えて

3
RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC] 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule .* http%1://www.domain.com/$0 [R=301,L] 
+0

ありがとう!新しい3行目と4行目の変更について説明してください。私はそれが何であるか学びたいです。 – ArendE

+1

'%{HTTPS}'はhttpsの場合に 'on'を含みます。だからhttpsの場合は 's'を加えることで' on(s) 'にマッチし、'%1'は 's'を含み、そうでなければ%1は空になります。だから、4行目でhttp、またはhttp * s *のいずれかを持っています。 – Gerben

+0

完璧な動作、この優れたスクリプトと便利な情報をありがとう! – ArendE

関連する問題