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

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

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

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)