.htaccess でindex.html を index.htm へ転送する方法

10数年以上前から運営しているサイトで、
拡張子が”.htm”
のものがあります。

今はもうほとんど見かけない”.htm”ですが、
当時はまだ、”.html”,”.htm”どちらでもよいという風潮があった気がします。

たぶん自分が参考にしていたサイトが”.htm”だったので、
それで短い方が便利とかそんな理由で、
“.htm”にしたのだと思う。

で、

ふと、グーグルアナリティクスを見ると、、、
20160609_index_htm01
のようになっていました。

えって、なんで!!

このサイトの
http://xxx.com/aaa/
でアクセスされた場合は、

http://xxx.com/aaa/index.htm

が正しく、

http://xxx.com/aaa/index.html

には、ファイルがありません。

よって、
グーグルアナリティクスで表示される
/aaa/index.html
へアクセスがあるのがおかしいのです。

念のため、内部のファイルを全検索し、
間違って、”index.html”へリンクしていないかを確認。

OK

WEB検索してみて、
問題なく
/aaa/index.htm
へ遷移することを確認

OK

で、最終的に頼れるAapcheのログを拝見。
やはり、
http://xxx.com/aaa/index.html
へのアクセスなんてありませんでした。

ここまできて、気づいたことがあり、
[アナリティクス設定]-[ビュー設定]を確認

20160609_index_htm02

やはり!!

予想どおり、ビュー設定のデフォルトページが
“index.html
になっていました。

つまり、グーグルアナリティクスに
http://xxx.com/aaa/

http://xxx.com/aaa/index.html
を統一して表示と設定していたので、

http://xxx.com/aaa/

へのアクセスが、

http://xxx.com/aaa/index.html

と表示されていたわけです。

納得!!

ですが、今回のことで、
http://xxx.com/aaa/index.html
と手打ちされたときに、
(そんな方は、恐らく同業者ぐらいですが。)

 

正しく画面が表示されないのは、問題だなと考え、
http://xxx.com/aaa/index.html

から
http://xxx.com/aaa/index.htm
へ転送する設定をしました。

.htaccessにて

RewriteEngine on
RewriteBase /aaa/
RewriteRule ^index\.html$ index.htm [R=301,L]

と設定し、

http://xxx.com/aaa/index.html
から
http://xxx.com/aaa/index.htm
へ転送させるようにしました。

 

スポンサーリンク

まとめ

アクセス解析を見た時は、ひやひやものでしたが、
ただのグーグルアナリティクスの設定表示上のミスというオチです。