WordPressと既存サイトを共存させたときの「.htaccess」の書き方

最近お願いされた件で、いままでやったことがないパターンだったので、また使う時のためにメモ。

wapuu

すでにウェブサイトを公開しているけど、新着情報の更新はHTMLを書き換えして運営していたようです。合わせて更新担当者がやめてしまったりして、うまく運営ができないとのことだったので、既存の部分は残しつつ、以下の様なご依頼を受けました。

このページの概要

既存サイトをそのままにして、自分で更新できるようにしたい

  1. すでに公開している静的なページはURLも含めてそのまま利用
  2. 更新する内容は基本的にテキストのみ
  3. 新着情報の個別記事を更新したら、自動的にトップページと一覧ページに表示

本来であれば、既存ページも含めてWordPressに入れてしまってもいいのですが、今回は部分的に導入しました。

すでに設定されている「トップページ」へのリンクを301リダイレクトで。

既存サイトでは、それぞれのページからトップページ「ドメイン/index.html」にリンクがあります。今回は、従来のトップページをWordPressのトップページに差替え「ドメイン/index.php」をしましたので、301リダイレクトを使います。

301 リダイレクト – ウェブマスター ツール ヘルプ

WordPressではパーマリンクを設定&ディレクトリ以外で公開する

WordPressは、専用ディレクトリにインストールして、ドメイン名で公開するように設定します。投稿のパーマリンクを変更します。今回は「/%category%/%post_id%.html」で設定しました。
この辺りは、いつものWordPressの設定なので、分からないときはグーグル先生に聞いてください。

WordPressが生成した「.htaccess」を書き換えるときの注意

パーマリンクの設定を行うと、基本的には自動的に「.htaccess」が作られます。その後、301リダイレクトの設定を追記するのですが、今回の環境では、WordPressが時々この「.htaccess」を書き換えることがありましたので、設定したはずなのに、いつの間にか元に戻っている。という現象が起こりました。

WordPressが生成する「.htaccess」の中身

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

書き換わるのは、上記の「# BEGIN WordPress 〜 # END WordPress」の間のみでしたので、これよりも上に、301リダイレクトの設定を書きます。

RewriteRule ^index\.html?$ / [R=301,L]

今回のケースでは、各既存ページにある「index.html」へのリンクを「ドメイン」にリダイレクトさせればよかったので、上の1行を追加するのみで、必要な挙動になりました。

※合わせて既存の「index.html」は削除しています。

スポンサードリンク

SNSでもご購読できます。

Loading Facebook Comments ...

コメントを残す

*