※ ChatGPTを利用し、要約された質問です(原文:.htaccessで拡張子なしのファイルを表示させる方法)
.htaccessで拡張子なしのファイルを表示させる方法
このQ&Aのポイント
拡張子なしのファイルを拡張子付きのファイルに関連付けるための質問です。
htaccessを設定すると、リダイレクトが正しく機能しない問題が発生しています。
正しいファイルを表示させるためには、.htaccessに適切なオプションコマンドを追加する必要があります。
.htaccessで拡張子なしのファイルを表示させる方法
拡張子なしのファイルを拡張子付きのファイルに関連付けるための質問です。
以下のようにhtaccessを設定すると「abc10.txt」以降はすべて「abc1.txt」にリダイレクトしてしまいます。
ファイル名の数字は9までしか認識しないようです。
例えばリダイレクト先のファイル名を「abc10.txt」に指定すると1術しか認識せず「abc1.txt」を表示してしまいます。
「abc11.txt」も「abc12.txt」も同じく「abc1.txt」を表示してしまいます。
例1
http://sample.com/abc9 (拡張子なしのファイル指定)
表示:abc9.txt
abc1.txt ~ abc9.txtは正しく表示される。
例2
http://sample.com/abc12 (拡張子なしのファイル指定)
表示:abc1.txt
abc10.txt ~ abc12.txtはすべてabc1.txtが表示される。
RewriteEngine on
RewriteRule ^abc1 abc1.txt
RewriteRule ^abc2 abc2.txt
RewriteRule ^abc3 abc3.txt
RewriteRule ^abc4 abc4.txt
RewriteRule ^abc5 abc5.txt
RewriteRule ^abc6 abc6.txt
RewriteRule ^abc7 abc7.txt
RewriteRule ^abc8 abc8.txt
RewriteRule ^abc9 abc9.txt
RewriteRule ^abc10 abc10.txt
RewriteRule ^abc11 abc11.txt
RewriteRule ^abc12 abc12.txt
abc9.txt以降のファイル「 abc10.txt」「 abc11.txt」「 abc12.txt」を正しく表示させる方法はないでしょうか?
.htaccessで9以降の数字を認識させるオプションコマンドなどがあれば楽なのですが。
お礼
詳しくご説明いただいて、ありがとうございます。 語尾に$を付けることで解決いたしました。 記入を簡単にできるのは便利ですね。もっと正規表現を勉強します。 サーバー移転後にログを見ると拡張子がないファイルが404エラーを吐きまくっていたので対策に困っていました。以前のサーバーでは特に何もしなくても拡張なしファイルが表示されていました。 何かのミスでURLに拡張子を記入し忘れたのですが、サーバーが賢くてそのまま運用されていました。 .htaccessの記入は初めてだったのですが色々勉強になりました。 もっと勉強すれば色々な事に応用できそうですね。