WEB
こんにちは!
花よりお酒、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^)/