静的なHTMLサイトで拡張子「.htmlあり」でも「なし」でもアクセスできる方法

静的なHTMLサイトを作って、ファイル名を.htmlとした場合などに「拡張子あり」でも「拡張子なし」でもアクセスできるようにしたいことはないだろうか?

はじめに答えを行ってしまうと.htaccessファイルの冒頭に下のような記述をすれば実現できます。

# html拡張子なしでもアクセス
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html

さて、需要はあるだろうか?

拡張子の有無に悩むシチュエーション

先日久しぶりに静的になHTMLサイトを作ってみた。

正しくは、もともとWordpressで運営していたサイトを実験的にHTMLサイトにしたのです。

WordPressで書いた記事をHTMLサイトに置き換えるのは手動でシコシコやるとして、悩まされたのは「パーマネントリンクをどのように置き換えるか?」です。

例えば、Wordpressで下のようなURLの個別記事があったとします。

例)http://example.com/archives/123

ここで書かれた記事をHTMLファイルとして作って、ファイル名を123.htmlとしたのよ。

で、/archives/ってディレクトリを作ってアップロードしても、アクセスすることが出来るのはhttp://example.com/archives/123.htmlという拡張子付きURLでなければならないの・・・

これだと検索エンジンのクローラも迷子になるだろうし、なによりも閲覧者さんが来訪出来なくなる可能性もある。

それでは困るんだよ・・・

そこで、archives/123でもarchives/123.htmlでも、どちらでも該当ページにアクセスできるようにしたかったワケ。

本来なら301リダイレクトを施して【archives/123】にアクセスがあれば【archives/123.html】にリダイレクトするのがベストなのかもしれませんが、ウマイ方法が思い浮かばなかったのよね。

ページの数だけ301リダイレクトを記述すればよかったのかもしれませんが、ページ数が多いのでヤメたの。

良い方法があればご教授ください!

例えば、100記事あったとすれば下のように・・・

Redirect 301 http://example.com/archives/1 example.com/archives/1.html
Redirect 301 http://example.com/archives/2 example.com/archives/2.html
Redirect 301 http://example.com/archives/3 example.com/archives/3.html
Redirect 301 http://example.com/archives/4 example.com/archives/4.html
   ・
   ・
   ・
   ・
Redirect 301 http://example.com/archives/99 example.com/archives/99.html
Redirect 301 http://example.com/archives/100 example.com/archives/100.html

こんな感じで100行書けばいいのかもしれないけど、ちょっと・・・ね?

ワイルドカードを使えるのならいいんだけど、大量の記事に対して.htaccessファイルに大量の記述をするのはちょっと不細工すぎますよね。

欲しい情報に限ってすぐに見つからないもの

今回の冒頭で紹介した「拡張子あり」でも「拡張子なし」でも、どちらでもアクセスできるようにする方法って、なかなか情報が得られなかったんですよね。

リダイレクト関連で「WWWあり/なし」とか「PHPを拡張子.htmlで動かす」とか、あとはサイトのドメインが変わる際の個別ページのリダイレクトなどは沢山情報があるんですけどね・・・

あたしゃ同一ドメインのままで、「拡張子なし」から「拡張子あり」へリダイレクトしたかったのよ。

拡張子の有無って需要無いのかな?



いいよね?

最後まで私の拙いエントリーを読んでいただいてありがとうございます!
もしもこの記事が少しでもあなたのお役に立てたなら、ぜひ「いいね!」していってください。
また何か新しい発見をお届けできるかもしれません。

何か見つかるかもね

関連記事

コメント

※コメントは承認制ですので、表示されるまで時間がかかる場合があります。

  1. RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} /[^./]+$
    RewriteRule ^(.*)$ $1.html [R=301,L]

    • 匿名
    • 2014年 7月 06日


    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} /[^./]+$
    RewriteRule ^(.*)$ $1.html [R=301,L]

  1. この記事へのトラックバックはありません。

*

オススメ鯖


高速かつ高機能で、しかも安定性抜群!!
私も利用させていただいてますわ

My Tumblr

    http://deltablog01.tumblr.com/post/77273138691http://deltablog01.tumblr.com/post/76325997079http://deltablog01.tumblr.com/post/75899137417http://deltablog01.tumblr.com/post/75253777050

BlogParts

あわせて読みたい

Share Me! Please!!!

このエントリーをはてなブックマークに追加
ページ上部へ戻る