2016-12-08 7 views
0

mod_rewriteに以下のルールと条件があり、HTTPSを追加するのが好きです。私はそれを公開する前にそれが正確であることを確認するのが好きです。HTTPSを既存のModリライトに追加

現在のルールと条件

RewriteEngine On 
    RewriteCond %{REQUEST_URI} \.jpg$ [NC] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule .* /home/domain.com/public_html/missing.png [L] 
    RewriteCond %{HTTP_HOST} ^www.olddomain.com$ 
    RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301] 
    RewriteCond %{HTTP_HOST} !^www\. [NC] 
    RewriteCond %{HTTP_HOST} !^$ 
    RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
    RewriteRule ^index.html$ http://www.domain.com/ [L,R=301] 

新しいルールと条件

RewriteEngine On 
    RewriteCond %{REQUEST_URI} \.jpg$ [NC] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule .* /home/domain.com/public_html/missing.png [L] 
    RewriteCond %{HTTP_HOST} ^www.olddomain.com$ 
    RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301] 
    RewriteCond %{HTTPS} Off 
    RewriteCond %{HTTP_HOST} !^www\. [NC] 
    RewriteCond %{HTTP_HOST} !^$ 
    RewriteRule^https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
    RewriteRule ^index.html$ https://www.domain.com/ [L,R=301] 
+0

あなたの質問から独立していますが、_really_エキゾチックなセットアップを持っていない限り、これは動作しません: 'RewriteRule。* /home/domain.com/public_html/missing.png [L]'。これはファイルシステムの絶対パスのように見えますが、それは 'RewriteRule'の内部で動作するものではありません。 – arkascha

+0

今のところ働いて働くことが必要です。画像が欠落している場合は、その欠けている画像が挿入されています。 –

+0

あなたはそう言っていますが、私は驚くでしょう:それは文書化されているものに反するものです。そこにはあなたが実際に絶対的なファイルシステムパスを書き換えルールのターゲットとして使うことができますが(あいまいであり、実行すべきではありませんが)、vhostの設定ではうまく動作しませんが、 '.htaccess'スタイルファイルでは動作しませんあなたが使っていると主張する。 – arkascha

答えて

0
RewriteEngine On 
# always do domain/https redirs first 
RewriteCond %{HTTPS} =off [OR] 
RewriteCond %{HTTP_HOST} ^(?!www\.domain\.com$). [NC] 
RewriteCond %{THE_REQUEST} ^\S+\s+/?(\S*) 
RewriteRule^https://www.domain.com/%1 [NS,NE,L,R=301] 
# remove index files from URLs, except from POST forms, etc. you can add more file extensions to the second condition 
RewriteCond %{REQUEST_METHOD} ^(?:GET|HEAD)$ 
RewriteCond %{THE_REQUEST} ^\S+\s+/?((?:[^?/]*/)*?)index\.(?:html?|php|pl)(\?\S*)?(?:\s|$) 
RewriteRule^https://www.domain.com/%1%2 [NS,NE,L,R=301] 
# missing images 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule \.(?:jpe?g|png|gif)$ /missing.png [NS,NC,L,DPI] 
+0

申し訳ありませんが、この時間がかかりました。今日は新しいSSLで生きていきました。完璧なソリューションをありがとう。 –

+0

@TopResults完璧ではありませんでした。それを更新しました。 – Walf

+0

更新しました。他のバージョンはうまくいきました - 上記の新しいバージョンも同様です。ありがとう!! –

関連する問題