私は何度もこれをやったことがあります、そしてまだ私はなんらかの未知の理由のためにこれを再びすることに成功していません。無限の解決策を試みました。私が試したことはすべて無限のリダイレクトループになります。
これを行うための最良の選択肢は何ですか?
アップデート1 これは試したことのいくつかです。
RewriteCond %{HTTP_Host} ^website\.co\.uk [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.website.co.uk/$1 [R,L]
そして;
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.website.co.uk$1 [R,L]
キャッシュの問題を防ぐためにさまざまなブラウザでテストされています。それでも何もありません、ただ継続的なリダイレクトループを取得しています。
あなたがあなたの家以外のあなたのページへのリンクを入力するとき、私は見る、例:
http://www.michaelcropper.co.uk/contact-me
www.michaelcropper.co.uk/contact-me
michaelcropper.co.uk/contact-me
https://
が接頭辞にない場合は、代わりにHTTPリンクがロードされます。 .htaccess
タグの間の<IfModule mod_rewrite.c>
に次のコードを追加します。
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
.htaccess
に追加の変更が加えられていない場合は、次のようになります。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# Rewrite HTTP to HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>
# END WordPress
どうなるか教えてください。
あなたは.htaccessでヘッダを設定することができます
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" env=HTTPS
</IfModule>
あなたの.htaccess
でこれを試してください:
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</IfModule>
# END WordPress
.htaccessファイル内にコードを追加する
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
問題を解決するために10分かかりました
ドメインのconfファイルを追加します。
/etc/httpd/conf.d/
のcentos 7に移動し、anything.conf
という名前のconfファイルを作成します。
次のコードを追加します。
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
ServerAdmin [email protected]
DocumentRoot /var/www/html
<Directory /var/www/html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
example.com
をドメインに置き換えます。
次に、.htaccessにhttps書き換えコードを追加します。 :)
W3 Total Cacheを使用している場合、@ Ethan Jinks O'Sullivanからの回答は、W3 Total Cacheが.htaccessで改造する前にリダイレクトを配置した場合にのみ機能します。
#BEGIN Rewrite HTTP to HTTPS
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>
#END Rewrite HTTP to HTTPS
# BEGIN GZIP COMPRESSION
...
# END GZIP COMPRESSION
# BEGIN DEFLATE COMPRESSION
...
# END DEFLATE COMPRESSION
# BEGIN W3TC Browser Cache
...
# END W3TC Browser Cache
# BEGIN W3TC Page Cache core
...
# END W3TC Page Cache core
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
これを.htaccessファイルに追加するだけです。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress