ホーム > Web , WordPress > WordPress の URL を設置ディレクトリとは異なるディレクトリで表示する

WordPress の URL を設置ディレクトリとは異なるディレクトリで表示する

posted 2008-06-18 (水) by maako

categoryCategory: Web , WordPress

WordPress をインストールする際、ルートディレクトリ直下ではなく、「wordpress」 とか 「wp」 などの適当な名前をつけたサブディレクトリにインストールする場合がほとんどだと思います。

私もそのようにしたんですが、「wordpress」 フォルダに WordPress をインストールした場合だと、サイトの URL は http://www.hogehoge.com/wordpress になるわけで。特にディレクトリをわける理由がなければ、「wordpress」というサブディレクトリ名を取っ払って、http://www.hogehoge.com で表示させたいのが人情というものですよね。

ということで、WordPress の設置ディレクトリとは異なるディレクトリで URL を表示する方法をメモしておきます。
ここでは http://www.hogehoge.com/wordpress から http://www.hogehoge.com に変更する、という前提で話を進めます。

  1. 管理画面 「設定」→「一般設定」の「ブログのアドレス(URL)」を希望のアドレスに書き換えて保存。
    ex.) http://www.hogehoge.com
  2. ルートディレクトリに、WordPress 本体がおいていあるディレクトリの index.php,.htaccess を移動する。
  3. ルートディレクトリに移動した index.php を編集する。
<変更前>
<?php
/* Short and sweet */
define('WP_USE_THEMES', true);
require('./wp-blog-header.php'); ※ここが変更箇所
?>

4行目 require(’./wp-blog-header.php’); を require(’./○○○○/wp-blog-header.php’); と書き換えて保存。(「○○○○」は、WordPress 本体をインストールしてあるディレクトリ名)

<変更後>
<?php
/* Short and sweet */
define('WP_USE_THEMES', true);
require('./○○○○/wp-blog-header.php');
?>

この index.php は、WordPress 内部の動作命令すべてを受け取るファイルです(wp-blog-header.php から読み取っている)。なので、ここで編集した index.php から wp-blog-header.php へのパスを WordPress 本体がインストールされているサブディレクトリをはさんだパスに変更する、ということになります。

  1. .htaccess のパーミッションを書き込み可能にする。(mod_rewrite ルールの変更。書き込み可能にしておけば、自動的に .htaccess の中身を変更してくれます。mod_rewrite ルールは手動で書き換えることも可能です。手順 6 を参考にしてください)

.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

.htaccess の中身を確認。以下のように書き換わっていれば OK。

<変更後>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] ※書き換わった状態
</IfModule>
# END WordPress

手順 2 で説明したように、変更前は /○○○○/index.php を読み込ませていましたが、ルートディレクトリ直下に移動した /index.php を読み込ませるように.htaccess で操作しています。

  1. http://www.hogehoge.com/○○○○/wp-login.php からログインしなおす。
  2. パーマリンク設定をデフォルトから変更していた場合、再度保存しなおす。
    ※手動で .htaccess を書き換える場合には、管理画面のいちばん下に書き換えるためのソース(↑上のソース)が出力されますので、それを.htaccess にコピペして保存します。
  3. 新しいサイト URL にアクセスし、正常に表示されるか確認。
  4. .htaccess のパーミッションを書き込み不能に戻す。

流れとしては、こんなかんじです。

自分でやってみた感触としては、やはり WordPress 本体のつくりがわかってないとダメじゃん、ってのと、.htaccess の使い方というか、.htaccess の働きもきちんとわかったうえで使わないといけない、ということでした…

結果的にできちゃえばいいんでしょうけれど、なんかね、されるがままにされちゃった、やったらこうなっちゃった、ってのがいちばんきもち悪い(笑)。そんなの全然身についてないもの。なので、あれこれ探ってみるのがいいな、と思いました。失敗したら元に戻せばいいんだし。

わからないままおわる、そんなのはイヤだ、といったのはアンパンマンでしたね。そういうことです。

ホーム > Web , WordPress > WordPress の URL を設置ディレクトリとは異なるディレクトリで表示する

Trackback URL:

5 Replies »

Comments

  1. コメント by ひかげ — 2008-07-05 (土) 12:22 AM

    はじめまして。ひかげと申します。

    検索からたどり着いたのですが、
    久しぶりにワードプレスで軽いサイトに出会いました。

    自分のサイトは、まだME 2.2.3ですが、
    こちらのサイトにて細かなテクニックなど
    参考にさせていただく機会もあると思います。

    まだまだワードプレスを使いこなせていませんが
    ひとつよろしくお願いいたします。

  2. コメント by maako — 2008-07-05 (土) 12:47 AM

    はじめまして。コメントありがとうございます。

    私は WordPress を使い始めたばかりで、右往左往しております。
    改善したいところがたくさんありますし、
    勉強しながら少しずつ直していけたらいいな、と思っています。

    表示スピードが軽いのは、外部スクリプトを使っていないのと
    画像もほとんど使っていないからかな?と思います。
    デザインも文書構造もシンプルであることを心がけて作りましたので
    それが反映されているようでうれしいです。

    ひかげさんのサイトは何度か拝見したことがあります。
    こちらこそ、よろしくお願いいたしますね。

  3. コメント by anoint — 2009-06-23 (火) 1:48 PM

    こんにちは、必要があって、検索をくりかえしておりましたら、こちらさまにたどりつきました。
    wordpressをルートにもってくる作業がとてもわかりやすく書かれてありましたので、とても参考になりました。
    ありがとうございました。
    実際にやってみてうまくいきました。
    ただ、(私は初心者なので)ひとつわからない点がありまして、もしお教えいただけましたらまことに幸いです。
    同じルートにindex.htmlがあると、そちらが表示されるということを今日初めて知り、削除しました。
    で使用中のサイトのURLに/index.htmlをつけくわえて表示させてみると、通常の表示のコンテンツの部分に404エラーが表示されました。
    これはしかたのないことなのでしょうか。
    /index.htmlをつけくわえても通常どおりに表示されるとよいのになと、そんなことを考えてしまいました。
    長々とこの場所をおかりしてすみませんでした。
    失礼いたします。

  4. コメント by maako — 2009-07-17 (金) 11:54 AM

    こんにちは、コメントありがとうございます。
    お役に立てたようで、うれしいです。

    さて、ご質問の件ですが、index.htmlで表示させたいということでしょうか?
    Wordpressは、wp-contentの中のindex.phpからすべてを読み込んで表示させています。
    なので、index.htmlで表示させたい場合は、そのようにさせるプラグインを入れるとかですかね。
    (そんなのがあったような、なかったような…)

    Wordpressはファイル構成が複雑なので、研究がてら、私も調べてみますねー。
    お返事にはなってないような気がしないでもない…すみません。

Trackbacks & Pingbacks

  1. トラックバック by SPOTLIGHT ! — 2009-04-10 (金) 7:44 PM

    WordPress、エックスサーバー、500エラー、403エラー

    レンタルサーバー業者は何社か渡り歩いてきたのですが、料金とサービス内容、パフォーマンスでエックスサーバーは優れており、気に入っておりました。しかし、数日前から500 Internal Se…

Leave a comment

  • 改行と段落は、自動的に付与されます。
  • お名前、メールアドレスの入力は必須ですが、メールアドレスは表示されません。

※コメントは管理者の承認後に表示されます。ご了承ください。

(required)

(will not be published),(required)