まとまりのないブログ

something which something is something

雑記・雑学

wordpressのパーマリンク設定で404になる問題

投稿日:2016年1月15日 更新日:

ワードプレスのパーマリンク設定をするとページ遷移先が404not foundになる場合。
チェックポイントは下記の3つ。

  • mod_rewriteの有効化
  • .htaccessの設置
  • 管理画面にてパーマリンクの設定・保存

でカスタム構造などのパーマリンクは使うことができるようになる。

私の場合はトップページはなんとか表示されたが(記事一覧は表示しなかった)、個別の記事のページを表示すると404エラーが表示されるという現象だった。mod_rewriteはウェブサーバーのapacheの設定で、レンタルサーバを利用している場合は大抵の場合は有効になっているので気にしなくていい。.htaccessファイルはパーマリンクの設定に不可欠なファイルで、内容はカスタム構造のリンクを変換するものになっている。このファイルをワードプレスの設置しているディレクトに置くことで有効になる。管理画面からパーマリンクの設定を実行すると.htaccessファイルは自動で作られる。対象ディレクトリに書き込み権限がない場合は自分でファイルを作成して置くか、権限を付与してから再度実行する。

mod_rewriteが有効化どうか確認するには、例えば下記のような内容に.htaccessを書き換えてみて、ページを表示してみたらヤフーのトップページが表示されるようならmod_rewriteは有効になっているといえる。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^.*$ http://yahoo.co.jp [L]
</IfModule>

他には、.htaccessのファイル権限とかもあるが、特には気にすることはなく標準のファイル権限を設定しておけばいい。レンタルサーバの場合は上記の点をチェックしておけばおそらく表示されるようになる。それでも表示されない場合は、サーバの設定(バーチャルホストやリダイレクト設定)に問題がある可能性が高い。

自宅サーバの場合も大体同じだが、httpd.confファイルでバーチャルホストを設定したりしている場合には設定の仕方によっては上記だけでは表示出来ない場合もある(私がそれでかなりハマった)
で、その時はウェブサーバーのログを見る。ログなんかめったに見ない主義だったが、今回ばかりはログを見ることで原因がわかった。そもそも404エラーはアクセスしたアドレスにファイルが見つからないというエラーで、ログにはアクセスしたディレクトリとともに404エラーが確認できる。バーチャルホストの設定が間違っている場合はおかしなディレクトリにアクセスしようとしてだから404なのだということがわかる。

ワードプレスとはあまり関係がないがapacheのhttpd.confでバーチャルホストの設定をする場合、一致したものから順に振り分けるという仕様になっているらしい。一致したものからというのはファイルの上から順にということで、バーチャルホストホストの設定で一番上にアスタリスク(*)で設定した場合はそれ以降は読まれないということになる。

-雑記・雑学

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

no image

Tomcatの開発環境について

今使っているTomcatの開発環境が古くなってきたので(Eclipse3.5.1,JDK1.6,Tomcat5.5)最新のEclipseとTomcatのバージョンにあげてみようかとトライしてみた。今現 …

no image

firefly ROC-RK3566-PC のメモリがECC使ってる模様

ROC-RK3566-PC fireflyというメーカー(ブランド?)のSBCの新しい製品でROC-RK3566-PCという型番の製品が新しく発売された様子。CPUはRockChip RK3566 C …

SteelSeries Flux の良さを語る

私が愛用しているSteelseriesのfluxという名前のヘッドセットについてあまりにも良いのでその良さをまとめる。同じ名前でイヤホンタイプも販売されていたようだがここでは頭に装着するヘッドホンタイ …

ネタ – Steamのゲームの起動完了までが長い

長いなと思ってたら1年超えた(笑)

cocos2d-x javascript no.4 スプライトを作成する

画像無しで矩形スプライトを作成する var sprite = cc.Sprite.create(); sprite.setTextureRect(cc.rect(0,0,100,100)); spri …