2007-04-13
晴れ

WordPress インストール先をウェブログ URL から分離

yuriko による 00:18:09 の投稿
カテゴリー: WordPressハック

このたび、WordPress のインストール先アドレスをウェブログ URL から分離しました。具体的に書くと、ウェブログ URL (http://www.yuriko.net/travel/) はそのままにして、WordPress のインストール先アドレスを別のものにしたのです。

通常は、インストールが簡単になるため両者を同じにしますが、先月から運用しているサイトは両者を別にしているためか、スパムがまるで来ません。この場合、wp-comments-post.php を直に叩くスパム投稿ができないからでしょう。

ということで、当サイトでも分離してみることにしました。分離先はベタですが /wordpress/ とします。ウェブログの URL は変えてはいけませんからそのままです。いわば、WordPress を /wordpress/ にインストールしつつ、ウェブログの URL は /travel/ としたのと同じことになります。

  1. まず、WordPress のインストール先を変更します。シェルまたは FTP クライアントで、/home/ほげほげ/public_html/travel/ ディレクトリーを /home/ほげほげ/public_html/wordpress/ に名称変更します。
  2. 次に、phpMyAdmin 等で、wp_options テーブルの siteurl は http://www.yuriko.net/travel から末尾だけ /wordpress に変更します (上記の変更でもはや WordPress にログインできないので管理画面での変更は無理)。
  3. さらに、.htaccess の RewriteRule . /travel/index.php [L] の travel を wordpress にします ( .htaccess は /home/ほげほげ/public_html/ にまとめてるので、これでOK)
  4. 最後に、アップロードした写真の URL を修正するために、データーベースをダンプして、テキストエディター で /travel/wp-content/ という文字列を /wordpress/wp-content/ に置換し、その内容をデーターベースに戻しました。

実際の作業は少し違いますが、だいたいこんな流れでできました。最後のデーターベース変更を省略して .htaccess に以下のような行を追加する手もありますが、Apache に負荷がかかるために避けました。

RewriteRule ^/travel/wp-content/(.*) /wordpress/wp-content/$1 [L]

他のサイトだと、http://example.jp/ がウェブログ URL とすれば、WordPress インストール先を http://example.jp/wordpress/ にする手が有効でしょう。この場合は、wordpress/ ディレクトリー内の .htaccess と index.php だけをルートレベルに移動させて、中身を require('wordpress/wp-blog-header.php'); を修正しないといけません。

[追記 2007-04-13 15:45] せっかくの改造も効果なく、スパムが多数着信します。当サイトに来るのはトラックバックスパムが多数のようです。これは Yuriko.Net メインサイトのように、トラックバック用 URI をランダム文字列にする改造が必要なようです。プラグインを開発するしか!!