ど素人から毛を生やす。<延>

サイトアドレス変えたら404になった件

Web > WordPress 2014年1月17日(最終更新:3年前)

このページは2014.1.17に作成されています。時代の流れとそぐわない可能性があったり、僕が今以上のど素人だった頃の記事だったりするので、新しい記事を探してみるのも良いかもしれません。

どもです。
最近、めっぽう朝に弱い餅。です。

今回もWordPressの話。
WordPress積み込むときって、ディレクトリ構造は割とサーバーやユーザーの都合によってバラバラですよね。
例えば、当サイトはhttpdocs直下に展開してますが、たぶんこれはレアなケース。

一般的には、httpdocs/wp/とかこういうのが多くて、サーバーの自動インストールを使ったりすると、httpdocs/cp-bin/wp/とか更にディレクトリが増えたりする。
けど、サイトのURLとしては「ドメイン/カテゴリ/記事名」とかそういうのが好ましいですね。

そこで使うのが管理画面の「設定/一般」のこれ。

h260117

この、「サイトアドレス」の方を変更することで、サイトのURLが変わります。
くれぐれも「WordPressアドレス」の方を変えてはいけません。第三次です。大惨事です。

その後、「パーマリンク設定」から設定を保存。
で工程は終わりなのですが、これだけでは上手くいってくれないことがあります。

具体的にはサイトが404エラーになります。

前置きが長くなりましたが、今回はそういうときの対策法。

まず、サイトアドレスで指定したディレクトリの「.htaccess」を探します。
無かったら作ります。
で、中身に以下のものが書かれているかチェック。

<IfModule mod_rewrite.> 
RewriteEngine On RewriteBase /  //(「サイトアドレス」がhttpdocs直下なら「/」、それ以下ならその分のurlを記述) 
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]  //(こちらも「サイトアドレス」に準拠) 
</IfModule>
 

次はhttpdocs直下のindex.phpをチェックです。無ければWordPressのトップディレクトリに入っているのを持ってきます。
で、

require( dirname( __FILE__ ) . '/wp-blog-header.php' );

と書かれている部分があるので、ここを

require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );

などに変更します。この変更部分の記述法ですが、

/(indexを置いたディレクトリからWordPressのトップディレクトリまでの道のり)

です。
ですから、cp-binの中にwordpressというフォルダが入っていた場合、記述は

require( dirname( __FILE__ ) . '/cp-bin/wordpress/wp-blog-header.php' );

となります。
大体はこれで解決すると思います。

2/14追記

記事の例はWordPressのURL変更で最も一般的な「サブディレクトリに置いたWordPressをルートディレクトリに表示する」方法でしたが、他のケースもあります。

例えば、「WordPress」がルートディレクトリの外のフォルダにある場合。
サーバーの自動インストールを使うと、サーバーにもよりますが、こうなることがあります。

そういうときはindex.phpに書いたURLを絶対パスで指定します。

.htaccessのphpエラーを表示にすることで、「dirname( __FILE__ )」の部分に表示される絶対パスをコピーし、WordPressのインストールディレクトリに合わせてみるのが万能な解決手段だと思います。

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった  (0)
  • (・∀・) 参考になった (0)
  • (`・ω・´) 役に立った (0)