2017-11-23 11 views
1

mod_rewriteをApacheサーバーの.htaccessファイルに使用できます。私はこのような何かを持っているしたいと思います:RewriteCond Aまたは(!Bと!C)

RewriteEngine On 

RewriteCond %{HTTPS} !on [NC,OR] 
RewriteCond %{HTTP_HOST} !^example\.com 
RewriteCond %{HTTP_HOST} !^sub\.example\.com 
RewriteRule ^/?(.*)$ https://example.com/$1 

httpまたはsub.(例えばwww.。。)以外のリクエストのサブドメインは、httpsへとwww.せずにリダイレクトする場合は、」を意味しています。

  • https://example.com - >何も
  • http://example.comん - >https://example.com
  • https://www.example.com - >https://example.com
  • http://www.example.com - >https://example.com
  • https://sub.example.com - >は何も
  • http://sub.example.comもしません - - >https://sub.example.com、これは確かに012より上のコードでは動作しません これを行う最も簡単な方法は何ですか?前もって感謝します!

答えて

0

あなたは、2つの異なるルールにこれを分割する必要があります。ブラウザのキャッシュをクリアするか、テスト用の新しいブラウザを使用してください

RewriteEngine On 

# remove www and https for https://www.example.com or http://www.example.com 
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteRule^https://%1%{REQUEST_URI} [L,NE,R=302] 

# simply add https for rest 
RewriteCond %{HTTPS} !on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=302] 
  • テスト後に302301に変更してください。
+0

「http:// www.example.com」は「www.google.com」にリダイレクトする必要がありますが、他の方法でそれをやっている... R = 301のメモ:あなたがすべてをやった後でそれを使いなさい、それを変更するのは簡単ではない。 GTG、それをグーグルで試してみてください... –

+0

ああ、私は誤解申し訳ありません。修正されました。今すぐ試してください。 – anubhava

+0

さて、2つのルールに入る必要がありました。私はwwwだけでなく、すべてのサブドメインを削除する編集を提案しました。それを見てください。 –

関連する問題