公開日:

WordPressで.htaccessリダイレクトができない場合【解決】

ブログ記事内に広告リンクを含む場合がございます。

以下の問題を解決します。

  • WordPressサイトに設置した.htaccessでリダイレクトがうまく動作しない
  • .htaccessでダイレクトする書き方を知りたい

 

WordPressで.htaccessリダイレクトができない原因

 

.httacessファイルでリダイレクトできない原因は様々です。
どのような原因があるか解説していきます。

 

ファイル名がそもそも違う

かなり初歩的ですが、まれにあります。

ファイル名が「.htaccess」であることを確認しましょう。
一般的なレンタルサーバーを利用している場合、パーマリンクを更新すると自動的に.htaccessが生成されるので間違いは起こりません。

自作のサーバーや、VPS、専用サーバーなどで運用している場合は念の為、ファイル名に間違いがないかを確認しましょう。

ダメな例

  • htaccess → ファイル名の先頭には、「.」(ドット)が必須です。
  • HTACCESS → 全て半角小文字です。

 

複数の.htaccessでリダイレクト設定が競合している

ほとんどの場合、ワードプレスのルートディレクトリーに.htaccessを設定しているかと思います。
ルートディレクトリー以外のディレクトリーに.htaccessは設置している場合にはリダイレクト設定が競合している可能性があります。

まれに、異なる.htaccessの設定が競合してしまい、設定内容が反映されない場合があります。

競合とは、「ケンカ」ですね。

「おれはこうしたいー」と兄.htaccesが主張し、弟.htaccessが「違うー!僕は、これがいい!」と言っているような状態です。

もちろん.htaccessの複数設置はOKです。

競合していないかを確認する為に、バックアップを用意した後、一時的にどちらかのファイルを削除してみましょう。
ちなみに.htaccess以外にも競合の原因となるものがあります。

競合の原因

  • php(テーマ)
  • Javascript
  • jQuery
  • リダイレクト用プラグイン

競合の原因となるものを一つ一つ確認しましょう。
例えば、テーマであれば一時的にテーマ別のものにしてみるといった方法を試してみましょう。

 

.htaccessの書き方・正規表現のミス

リダイレクトに限らず、.htaccessが正しく動作しない一番の原因は、記述ミスです。

「^」「*」などの正規表現は慣れない運用者にとっては宇宙語みたいなものですので、失敗しがちです。このミスをなくすために、.htaccessチェックツール(バリデーター)を使うことをお勧めします。

 

.htaccessチェックツールその名も「.htacsess check」

無料で使えるチェックツールを紹介します。ブラウザでチェックを行えるツールタイプですので、ソフトのインストールは不要です。

 

.htacsess checkの使い方

  1. .htacsess check」にアクセスします。
  2. 中央の入力エリアに、.htacsessの内容を貼り付けます。
  3. 入力フォーム下にある「Submit Text Area」をクリックします。
  4. 結果が表示されます。

問題のある記述がある場合、赤線で教えてくれます。
簡単ですね。

同じようなチェックツールは他にもあります。

チェックツール「lyxx

こちらのツールも先ほど紹介した「.htacsess check」と同じです。
入力エリアに.htacsessの内容をぺイストし、画面右手に表示されている「check it」をクリックすると、結果が表示されます。

 

コードを追加する場所に誤りがある!

リダイレクトのコードは.htaccessの適切な場所に記載します。
.htacces記載する場所(順序)により、意図したリダイレクトをしないことがあります。

×まちがいの場所

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

ここにリダイレクトのコード

〇正しい場所

ここにリダイレクトのコード

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

 

.httacecssのリダイレクト記述例

.htaccessのリダイレクト用サンプルコードを紹介します。
主に、ワードプレスの運用で利用されるリダイレクトの書き方です。

301リダイレクト

自分のサイトにあるold.htmlページへのアクセスをhttp://text.com/new.htmlにリダイレクトしています。「texst.com」は自分のサイトとして想定してください。

Redirect 301 /old.html http://text.com/new.html

 

302リダイレクト

302リダイレクトは一時的なリダイレクトが必要な際に利用します。
これに対して301は恒久的なリダイレクトです。

Redirect 302 /old.html http://text.com/new.html

 

URLに強制的に「www」

test.comへのアクセスをwww.test.comへリダイレクトする記述です。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^test.com [NC]
RewriteRule ^(.*)$ http://www.teset.com/$1 [L,R=301,NC]

※test.com/001.htmlへのアクセスもwww.test.com/001.htmlへリダイレクトしてくれます。

 

URLから「www」を外す

ひとつ前のサンプルと逆の動作をします。
www.test.comへのアクセスをtest.comへリダイレクトする記述。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.test.com [NC]
RewriteRule ^(.*)$ http://test.com/$1 [L,R=301]

 

常時SSL

サイトをSSL化した際に追加するべきコードです。
「http://」のアクセスを、「https://」にリダイレクトする記述。

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

 

サブディレクトリーへのリダイレクト

test.comへのアクセスをtest.com/サブディレクトリーにリダイレクトする記述。

RewriteCond %{HTTP_HOST} ^test.com$
RewriteCond %{REQUEST_URI} !^/サブディレクトリー名/
RewriteRule (.*) /サブディレクトリー名/$1

 

別ドメインへのリダイレクト

ドメインを2つ持っている場合で、全てのアクセスをtest.comドメインへリダイレクトする記述。

Redirect 301 / http://test.com

 

【補足】.htaccessを管理画面から編集できるWordPressプラグイン

.htaccessの編集はPCにファイルをダウンロード→編集→ファイルをアップロードとわずらしいです。

FTPのアカウントを忘れた場合は、さらに面倒ですよね?

そんな時は、ワードプレスのダッシュボード上から.htaccesを編集可能にしてくれるプラグインがあります。

このプラグインには、.htaccesの自動バック機能と、文法チェック機能があります。
初心者にも優しい設計です。

管理画面から.htaccessを編集するWordPressプラグイン

 

.htaccessでリダイレクトできない記事のまとめ

いかがでしたか?
WordPressサイトで.htaccessでリダイレクトできるようになりましたか?

.htaccessでリダイレクトはハマると、ひたすらリダイレクトできないで困りますよね。
便利なリダイレクト用プラグインを使う方法もありますが、プラグインを増やすのはあまりお勧めしません。

プラグインはワードプレスのバージョンが上がると、動作しなくなるものがあるからです。
できるだけ、プラグインを利用せずに、ワードプレスの運用ができるといいですね。

本記事が皆さんのお役に立てば幸いです。


人気記事 初心者でも可能なSEO対策って何?


人気記事 【ゼロから始める】副業ブログで月5万円を稼ぐ!当社スタッフが試してみた方法と成果を公表


この記事を書いた人
うくさ

うくさ IT業界歴18年です。当カスタマイズネット所属エンジニア。
ワードプレス、シスコシステムズ社製ネットワーク機器担当。


この記事の関連記事



新着コラム