- ベストアンサー
htaccessで拡張子を非表示にしてHTML文書を表示させる方法
htaccessで拡張子を非表示にしてHTML文書などを表示させる方法が分かりません。 具体的に言えば、example.htmlというファイルを http://www.example.com/example というURLで表示したいのです。 http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/にて調べてみたのですが、よく分かりませんでした。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 mod_rewriteは正規表現を使えるので、 RewriteRule ^([A-Za-z0-9]+)$ $1.html のように書くことも出来ます(英数字の並びに.htmlを付加する)。 DefaultTypeを使う方式のほうは、 DefaultType text/html <Files "example2"> DefaultType text/css </Files> でどうでしょうか(未確認)。 >今度はhttp://www.example.com/example.htmlは表示されなくなってしまいました。 >両方で表示できるサイトを知っているのですが、 案1: mod_rewriteを使う 案2: 内容が同じ2つのファイルを置く。またはサーバーにログインできればリンクを張るほうが良い。
その他の回答 (2)
- notnot
- ベストアンサー率47% (4900/10358)
まず、お使いのウェブサーバーがmod_rewriteという機能を使えるかどうか確認してください。 使える場合、 RewriteEngine on RewriteRule ^example example.html apacheのバージョンにより多少違いがあるようなので、駄目なら、 RewriteRule ^/example example.html RewriteRule /example example.html RewriteRule example example.html 等も試してください。 mod_rewriteが使えないなら、「何故拡張子を非表示にしたいのか」から考え直したほうがいいかも。 ファイル名をexamlpeと拡張子無しにして、 DefaultType text/html で、MIMEタイプを指定するのはどうでしょう?
補足
mod_rewriteを使う方法は、ファイルひとつひとつについていちいち設定するのが面倒そうなので、やめておきます。 MIMEタイプの指定なのですが、その方法だとhttp://www.example.com/exampleは表示されますが、今度はhttp://www.example.com/example.htmlは表示されなくなってしまいました。 両方で表示できるサイトを知っているのですが、そのようにする方法はないのでしょうか。 あと、この方法だとexample2.cssをexample2で表示することは同時にはできないようですが、どのようにすればいいのでしょうか。
- saaya_holic
- ベストアンサー率23% (46/195)
.htaccessには IndexIgnore *,*,… [*は拡張子の.以降の部分] というのがありますが これはファイル名の拡張子を見せないのではなく 特定の拡張子のファイルを見せないようにするときに使います。
お礼
ありがとうございます。 参考にさせてもらいます。
お礼
ごめんなさい、補足は全く間違っていました。 mod_rewriteの機能は全て使えないようです。 で、 DefaultType text/html <Files "example2"> DefaultType text/css </Files> の表記法でいけました。 どうもありがとうございました。
補足
RewriteRule ^example example.htmlは使えましたが、RewriteRule ^([A-Za-z0-9]+)$ $1.htmlは使えませんでした。 原因は分かりますでしょうか。 あと、DefaultTypeを使う方法はできませんでした。 たびたび申し訳ありません。