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

【WordPress】.htaccessでリダイレクトできない原因IT/WEB

「.htaccessファイルでリダイレクトの設定をしたのにうまくリダイレクトされない」

WordPressでWebサイトを作って、.htaccessファイルにリダイレクトの設定を記述したのに、想定通りにリダイレクトされないことってありますよね。

私の場合はいろいろと試行錯誤した結果、.htaccessファイルでリダイレクト設定を書く場所を直したら、想定通りにリダイレクトが機能しました。

この記事では、リダイレクトされない原因と、実際に行った対処方法をご紹介します。

また、.htaccessでリダイレクトできないときに考えられるその他の原因についてもご紹介しますので、あわせて確認してみてください。

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

想定通りにリダイレクトされないのは、.htaccessファイルでリダイレクト設定を書く場所が原因でした。

リダイレクト設定は、WordPressが自動生成する記述の前に書かないとうまく動作しません。

最初、私はWordPressが自動生成する記述の後ろにリダイレクト設定を書いていたため、リダイレクトがうまく動作しませんでした。

間違った書き方

# 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

★ここにリダイレクト設定の記述を書いていた★

正しい書き方

★ここにリダイレクト設定の記述を書いた★

# 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

わかりましたか?

間違った書き方では、1行目の「# BEGIN WordPress」から10行目の「# END WordPress」が、WordPressで自動生成される記述です。

「# END WordPress」の後ろにリダイレクト設定の記述を書いていたため、リダイレクトがうまく動作しませんでした。

正しい書き方では、3行目の「# BEGIN WordPress」の前にリダイレクト設定の記述を書いています

この順番で設定を記述することによって、想定通りにリダイレクトが行われるようになります。

コードは上から一行ずつ記述されている順番に処理を行っていきます。

間違った書き方では、自分が設定したリダイレクト処理が行われる前に、WordPressのリダイレクト処理が行われてしまうため、想定通りにリダイレクト処理が行われなかったのです。

.htaccessでリダイレクトできないときに考えられるその他の原因

上で説明したリダイレクト設定を書く場所に問題がない場合は、次のポイントを確認してみましょう。

  • ファイル名が正しくない
  • リダイレクト設定の記述が正しくない
  • パーミッションが正しくない

ファイル名が正しくない

ファイル名が「.htaccess」になっていることを確認しましょう。

最初の “ . ”(ドット)が抜けていたり、不要な拡張子がついていないか確認します。

リダイレクト設定の記述が正しくない

リダイレクト設定の記述に誤りがないか一字ずつ確認しましょう。

抜け漏れはもちろん、全角が含まれていないか等も確認してください。

パーミッションが正しくない

パーミッションとは許諾という意味で、ファイルのアクセス権を表しています。

.htaccessは「604」という設定が推奨されているようですが、レンタルサーバー会社によって初期値が異なっているようです。

自分の環境で適切なパーミッションが付与されているかどうか確認してみましょう。

まとめ

WordPressで運用しているサイトで.htaccessでリダイレクトできない原因について説明しました。

私の場合は、.htaccessファイルでリダイレクト設定を書く場所を修正したらうまくリダイレクトが動作しました。

書く場所に問題がない場合は、今回ご紹介した考えられる他の原因をひとつずつ確認していくようにしましょう。

タイトルとURLをコピーしました