山口県山口市のホームページ制作・広告デザイン | 株式会社モトクロス

IT系会社員よもやま話 | 山口県山口市のWeb制作会社 モトクロスのスタッフブログ

モトクロス 5月30日新しいものが出来上がるワクワク

WEB

2016.03.29WEB

WordPressでのサイトリニューアル、旧サイトからの転送をhtaccessで301リダイレクト設定

こんにちは!

花よりお酒、DADAです。お花見がしたい(お酒が飲みたい)です!

 

WordPressサイトで旧サイト(静的html)からの転送設定をした話

先日、お客様のサイトをリニューアルオープンしました。

旧サイトはhtmlで作られた静的なサイトでしたが、この度WordPressを導入しました。

WordPressはPHPでできているため、今までのサイトのURLが変わります。

 

こんな感じ。

http://www.example.co.jp/index.html → http://www.example.co.jp/

http://www.example.co.jp/access.html → http://www.example.co.jp/access/

 

実際にページがないわけなので、検索的にはそのままでも、時間が経てば新しいURLがインデックスされます。

しかし、問題なのは、他サイトからのリンク。

 

たとえば、飲食店の場合、食べログなどにお店の紹介が載っていると思いますが、そこに記載されているホームページURLが「http://www.example.co.jp/index.html」だったら・・・

 

404 Not Found(ページが見つかりません)

 

になっちゃうわけです!!

404ページをちゃんと作っていれば、新しいサイトを閲覧できますが、404エラーが出るのはいやだ、ユーザーに分からないようにトップページ(もしくは該当する新ページ)に飛ばしたい。

そこで、「.htaccess」というファイルにリダイレクトの設定を記述します。

 

しかし、ここでつまずきました。

設定を書き加えても、何も起こらない・・・

無限ループ(リダイレクトのリダイレクトになり、永遠にループしちゃう)になる・・・

 

書き方は合っているのに!!!

 

通常、WordPressで作成したサイトには、WordPressが自動でhtaccessを生成します。

 

WordPressが自動で生成したhtaccess

# BEGIN WordPress

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

# END WordPress

 

この# END WordPressの下に、リダイレクトの設定文を追加しました。

 

リダイレクトの記述(mod_rewriteが使えるサーバー)

RewriteEngine On
RewriteRule ^index.html http://example.co.jp/ [L,R=301]
RewriteRule ^access.htm http://example.co.jp/access/ [L,R=301]

 

動かない(T_T)

 

原因は・・・記述する順番でした。

WordPressが自動で生成した文章の上、# BEGIN WordPressの上にリダイレクト設定を記述したところ、動きました。

 

スタッフ2人がかりで調べても情報がありませんでした。

「WordPress htaccess リダイレクト」で検索しても、mod_rewriteを使った記述方法が書いてあるだけだったのです・・・。

もし、WordPressサイトでhtaccessリダイレクトができない〜!という方は、試してみてください。

 

とりあえず、解決してよかった!!\(^o^)/

 

この記事を書いた人

DADADADA

ウルトラマンシリーズに登場する、三面怪人「ダダ」ではなく、モトクロスのWEBデザイナー。好きなものは他人の不幸。

DADAの記事一覧

DADAが書いた他の記事