1. ホーム
  2. wordpress

[解決済み] .htaccessを使用してHTTPをHTTPにリダイレクトする

2023-07-03 10:16:55

質問

お願いだから 長く、非常に詳細なスレッド を勧めないでください。それは私には効果がありませんでした。他にもいろいろ試しましたが ( 1 , 2 , 3 , 4 ). これらはすべて私にTOO_MANY_REDIRECTSまたはエラー500を与える。そこで、私の問題を説明します。

私の現在の.htaccessで、これは何が起こるかです。

https://www.dukescasino.com/ - 完璧に動作する

https://dukescasino.com/ - は上記のようにリダイレクトされ、素晴らしい

下の2つのオプションは問題なく読み込まれますが、httpsバージョンにリダイレクトされるはずです。

http://www.dukescasino.com/

http://dukescasino.com/

現在の.htaccessはこちらです。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

関係ないと思いますが、もしそうなら、現在有効なプラグインの一覧はこちらです。

  • Advanced Custom Fields
  • オールインワン SEO Pack
  • ナビメニュー用バップサーチボックス アイテムタイプ
  • お問い合わせフォーム 7
  • コメントを無効にする
  • Google XML Sitemaps
  • WordPress.com による Jetpack
  • 検索とフィルタ
  • スライダー WD
  • テーブルプレス
  • UpdraftPlus - バックアップ/リストア
  • Wordfence セキュリティ
  • WPide
  • WP Smush
  • WP スーパーキャッシュ

編集 1 - テストを実行しました。

テストA。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} off
# First rewrite to HTTPS:
# Don't put www. here. If it is already there it will be included, if not
# the subsequent rule will catch it.
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{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>

結果 err_too_many_redirects

テストBです。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

結果 err_too_many_redirects

テストCです。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{SERVER_PORT} ^80$
 RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

結果 err_too_many_redirects

テストDです。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

結果 err_too_many_redirects

テストEです。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI}$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}$1

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

結果 302 が見つかりました。さらに、リクエストを処理するために ErrorDocument を使用しようとして、500 Internal Server Error エラーが発生しました。

どのように解決するのですか?

問題は解決しました。

最終的な.htaccessです。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{ENV:HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>