URLの正規化 ~htmlとphpを/に~ さくらインターネットでwordpress

今作成しているWEBサイトをSEOチェックツールをかけていたら、URLの正規化でエラーがでました。
要は、 http://hogehoge.com っていうWEBサイトにしているつもりだけど、
http://hogehoge.com/index.html ってURLを入れても、
http://hogehoge.com/index.php ってURLを入れても、TOPページ(またはエラー)が表示されちゃうよってことのようです。
これは、重複コンテンツとしてみなされてしまって、SEOの効果を下げてしまう可能性があるので対策をしていこうと思います。
ひっかかたのは、さくらインターネットではURLの正規化で一般的に記述する「Options +FollowSymLinks」が使えないっていうことです。
ずっとエラー(500 – Internal Server Error) で困ってましたがやっと解決しました。
やりたい事は |
URLに、http://hogehoge.com/index.html または http://hogehoge.com/index.php って入れても、”http://hogehoge.com”にリダイレクトされること です
対象ファイル |
.htaccess
ファイルのある場所 |
home
∟ドメイン
∟www ←ここにあります
※さくらインターネットで、素直にインストールしたので、その場合です。
編集前の .htaccess |
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> |
↑書かれている内容は、事前にパーマリンクの設定をカスタム構造にしていたため、左図の部分が.htaccessに追加されています。記載されているのはそれだけで、他に設定はしていません。
編集後の.htaccess |
赤字部分を今回の目的のために追加
調べている最中に見つけたので青も追加
# index.html, index.phpは/にリダイレクト RewriteCond %{THE_REQUEST} ^.*/index.(html|php) RewriteRule ^(.*)index.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L]# 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 |
青を追加した理由です。前出のパーマリンク設定のように自動で .htaccessに加筆してくれるようなのですが、
自分が追記した(今回でいうと赤字)部分を上書きしちゃったりすることもあるようなのです。
なので、自分で追記する場合は、# BEGIN WordPress~# END WordPressの範囲外にする方がいい。。。
ん?私のそもそも# BEGIN WordPressがないなぁと思って今回追記しました。
この記事へのコメントはありません。