2017-01-25 8 views
1

ユーザーの所在や入力内容(つまり、example.comなし)に関係なく、httpsのバージョンをロードしようとしています。httpsのRewriteRuleが機能しない

htaccessファイルに次のコードがありますが、example.comに入力するとhttps://example.comというサイトは読み込まれません。私はキャッシュをクリアし、クラウドフレアを開発者モードにしました。

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC] 
RewriteRule ^(.*) https://%1/$1 [R=301,NE,L] 
RewriteCond %{HTTPS} off 

私がこのラインを持っていた前に、リダイレクトループが発生しました。

RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301] 

誰かが間違っているのを見てください。

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^www\. [NC,OR] 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule^https://%1%{REQUEST_URI} [R=301,NE,L] 


RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 


ErrorDocument 404 /404custom.php 

<ifmodule deflate_module.c> 
    DeflateCompressionLevel 1 
    DeflateBufferSize 8096 
    DeflateMemLevel 8 
    DeflateWindowSize 8 

    AddOutputFilterByType DEFLATE text/css 
    AddOutputFilterByType DEFLATE text/html 
    AddOutputFilterByType DEFLATE text/plain 
    AddOutputFilterByType DEFLATE text/xml 
</ifmodule> 

<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresByType image/gif A31536000 
    ExpiresByType image/jpg A31536000 
    ExpiresByType image/jpeg A31536000 
    ExpiresByType image/png A31536000 
    ExpiresByType image/bmp A31536000 
    ExpiresByType image/ico A31536000 
    ExpiresByType image/ico A31536000 
    ExpiresByType image/icon A31536000 
    ExpiresByType image/x-icon A31536000 
    ExpiresByType text/css A31536000 
    ExpiresByType text/javascript A31536000 
    ExpiresByType application/javascript A31536000 
    ExpiresByType application/x-javascript A31536000 

    # Add a far future Expires header for fonts 
    ExpiresByType application/vnd.ms-fontobject A31536000 
    ExpiresByType application/x-font-ttf A31536000 
    ExpiresByType application/x-font-opentype A31536000 
    ExpiresByType application/x-font-woff A31536000 
    ExpiresByType image/svg+xml A31536000 

    <FilesMatch "\.(js|css|xml|gz)$"> 
     Header append Vary: Accept-Encoding 
    </FilesMatch> 

</IfModule> 

RedirectPermanent /test_index https://example.com 
+0

RewriteCondの "^ www"部分がhttps:// example.comの入力と一致しません。 https:// www。example.comを試すか、条件を変更してください。 (SOのマークダウンに問題がある) – Andy

+0

'https://'で 'www'を削除したいですか? – anubhava

+0

@anubhavaはい。ユーザーがwwwを入力したかどうかに関わらず、https://example.com – Paul

答えて

1

孤児RewriteCondが無効です。また、あなたは、このようなOR句必要があります。

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^www\. [NC,OR] 
RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"' 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule^https://%1%{REQUEST_URI} [R=301,NE,L] 

をブラウザのキャッシュをクリアした後、それをテストします。

+0

と言ってもらいたい。残念ながら、それはうまくいかなかった。私はブラウザの履歴をクリアし、Ctrl + F5を押して、別のブラウザに行った。 – Paul

+0

更新された回答を今すぐお試しください。 – anubhava

+0

更新された回答では、httpsのバージョンにexample.comが必要ですが、example.comがリダイレクトした回数が多すぎます。 – Paul

関連する問題