ワードプレスは、htaccess(ウェブサイトを配信するサーバーの情報配信方法を主に設定するファイル)ファイルによって記事やページへのリンクを生成しています。今回はこのhtaccessファイルについて掘り下げて解説いたします


6017290796_6438bf345f

htaccessファイルの場所

ワードプレスをインストールしたディレクトリ直下に.で始まる不可視ファイルとして.htaccess書き込まれています。htaccessファイルがない場合はいくつか原因が考えられます。

原因1 htaccessがFTPソフトで非表示になっている

FTPソフトFIlezillaを使用している場合、htaccessを表示しない設定になっている場合があります。この場合、サーバーメニュより、「強制的に隠しファイルを表示する」を選択されてみてください
fzilla

原因2 htaccessがローカルコンピューターで非表示になっている

Macをご利用の場合、.で始まるファイルはローカルでは表示されません。この場合「アプリケーション」→「ユーティリティ」と移動し「ターミナル」を起動します。
ターミナルに下記のコマンドを入力して、コンピューターを再起動します。

defaults write com.apple.finder AppleShowAllFiles -boolean true

原因3 ワードプレスがhtaccessを生成できない状態になっている

ワードプレスが自動で、htaccessファイルを生成する際にフォルダの書き込み権限がなく、ファイルの書き込みに失敗している場合がございます。この場合、ワードプレスのトップディレクトリの書き込み権限を与え書き込みができる状態にしましょう。
filezilla
Filezillaでトップディレクトリのフォルダを右クリックし、「ファイルのパーミッション」から、755または777にします。その後、ワードプレスの管理画面>設定>パーマリンクの設定 よりもう一度設定を保存しなおします。

htaccessファイルの内容解説

ワードプレスによって生成される、htaccessファイルの内容がどのような意味なのかを解説いたします

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
  • # で始まる行
  •  この行はコメント行と言ってサーバーは読み取りませんが、プログラムによってはこのコメントを検索して参照したりすることもありますので、消さないほうが無難です

  • IfModule mod_rewrite.c
  • このタグは、もしmod_rewrite.cというモジュールがサーバーにインストールされていたら、その下のプログラムを実行してください。という意味です。大抵のレンタルサーバーには必ずインストールされています

  • RewriteEngine On 、RewriteBase /
  • この行は、URLをブラウザからのアクセス時に書き換えて内部解釈し直す機能を有効にします。という意味です。RewriteBaseはどのディレクトリからこの機能を有効にするのかを示します。この場合/だけですのでルートディレクトリ以下すべてで機能が有効となります

  • RewriteRule . /index.php [L]
  • この行は、すべてのリクエストをindex.phpというワードプレスのトップディレクトリにあるファイルに書き換えてしまうという意味です。つまりワードプレスのサイトにアクセスしたら、実はサーバーの内部的にはindex.phpに全てのリクエストが集中することになります。ワードプレスのディレクトリ構造にない記事にアクセスしてちゃんとページが表示される秘密はここにあります。ワードプレスのindex.phpがURLを解釈して都度ページを生成しているのです、

  • RewriteCond %{REQUEST_FILENAME} !-f、RewriteCond %{REQUEST_FILENAME} !-d
  • この行は、URLを書き換える際のルールの記載となります。上記の意味は、フォルダまたはファイルが存在しない場合にのみ書き換えを実行してください。という意味になります。この記載があるため、ワードプレスの画像などに直アクセスしても正しく画像が表示されるのです。

    htaccessファイルで簡単なリダイレクトをしてみる

    最後にhtaccessファイルで、特定のドメインにアクセスがあった場合に丸ごと別ドメインにリダイレクトさせる方法を解説いたします。htaccessファイルの先頭に下記のように書き込みます。

    RewriteEngine On
    RewriteRule ^(.*)$ http://new.com/ [R=301]
    

    new.comの部分はリダイレクト先のドメインです。この例では、すべての現ドメインへのアクセスが、new.comのトップページにリダイレクトされます。ワードプレスドクターではより高度なリダイレクト、個別記事のアクセスを新しいドメインの記事に直にリダイレクトしたり、ページのURLの生成規則が違うサイトへのリダイレクトも状況によっては可能な場合がありますのでお気軽にご相談ください。

    WordPress(ワードプレス)で何かお困りの場合はワードプレスドクターにご相談ください。サイトの改造、修正、作成、SEOなど私たちにお任せください