www有り・無しが統一されない場合[WordPress]
何故かWordPress側でwww有り・無しが統一されない状況に陥ってしまったので.htaccessにコードを記述してwww有り・無しが統一されるように対応しました。
まえがき
先日WordPress3.1を使用しているサイトのサブドメイン「www」の有り無しを統一する作業を行いました。
KoToRiは何故かこの手の作業に躓いちゃうのでいい加減、しっかり記事にして今後迷う事が無いようにしたいと思います。
そもそもWordPress使えば自動的に「www」の有り無しを統一してくれるんじゃないの?
そうなんです。普通は自動的にやってくれるはずなんです。最近手がけたWordPressを使用したサイトも問題なく勝手に統一されています。
www有り無しをどこで指定するかというと管理画面の「設定」→「一般」の「サイトアドレス(URL)」です。
ここに入力されたURLに統一されます。
普通なら。
WordPress側で「www」の有り無しを統一してくれない場合
何が原因なのかは定かではありませんが今回は
WordPress側で「www」の有り無しを統一してくれませんでした。
原因も不明で古いWordPressを使用したサイトだったのでWordPressのバージョンが古すぎるとダメなのかもということくらいしか言えません笑
ただ、.htaccessにちょっとコードを記述すれば「www」の有り無しを統一することができるので心配は要りません。
もっともその答えを導き出すのに6時間は無駄にしましたけどね笑
KoToRiは.htaccess苦手なのです><
対処法
WordPressのパーマリンク設定を変更すると下記のような「.htaccess」が書き出されます。
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
これに下記にようにコードを追加してください。
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^(kotori-blog\.com)(:80)? [NC] RewriteRule ^(.*) http://www.kotori-blog.com/$1 [R=301,L] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
このコードはwww有りに統一するためのコードです。
ちゃんと「RewriteEngine On」の下に追加してください。
追加する位置が違うとうまく機能しません。
もちろん追加するコードのドメイン名等は適宜変更してくださいね。
作成した.htaccessをアップロードすればちゃんと「www」有り無しが統一されているはずです!
まとめ
.htaccessの追加するコードの記述位置だけ注意してください。
KoToRiはこの記述位置のせいで6時間を無駄にしてしまいました。
ホント、.htaccess難しいです。