拡張子なしのファイルを拡張子付きのファイルに関連付けるための質問です。
以下のように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以降の数字を認識させるオプションコマンドなどがあれば楽なのですが。
No.1ベストアンサー
- 回答日時:
正規表現を勉強されると良いかと思います。
次のようにすると良いです。
RewriteRule ^abc1$ abc1.txt
^ は正規表現で頭にマッチするという意味です。
つまりは ^abc は abcから始まる文字列にマッチしろということですね。
これとは別に末尾にマッチする $ という正規表現があります。
abc $ であれば abcで終わる文字列にマッチするということです。
これを組み合わせて ^abc$ とすると abc で始まり abc で終わる文字列にマッチする。
つまりは abc のみを含む文字列にマッチするということになります。
正規表現は便利で、上のように全てのファイル名を書かなくとも次のように簡単に書くことができます。
RewriteEngine on
RewriteRule ^abc([0-9]{1,2})$ abc$1.txt
これは abc** というファイルの ** の部分が 0~99の場合です。
0~12 のようにしたい場合は次のようになります。
RewriteEngine on
RewriteRule ^abc([0-9]|1[0-2])$ abc$1.txt
正規表現を勉強するといろいろと便利なので余裕があるなら勉強すると良いですよ。
詳しくご説明いただいて、ありがとうございます。
語尾に$を付けることで解決いたしました。
記入を簡単にできるのは便利ですね。もっと正規表現を勉強します。
サーバー移転後にログを見ると拡張子がないファイルが404エラーを吐きまくっていたので対策に困っていました。以前のサーバーでは特に何もしなくても拡張なしファイルが表示されていました。
何かのミスでURLに拡張子を記入し忘れたのですが、サーバーが賢くてそのまま運用されていました。
.htaccessの記入は初めてだったのですが色々勉強になりました。
もっと勉強すれば色々な事に応用できそうですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 交代式と整数問題 17 2023/03/06 16:52
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
- 数学 数学に詳しい方、教えて下さい! 写真の三角形ABCの辺AB、AC上に、それぞれ 点D、Eがある時、D 3 2022/05/07 21:51
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/08 09:05
- 数学 数学の質問です。 ABCの内接円の半径が8であり, 辺BCがその接点により長さ 16 と12に分けら 2 2023/07/05 18:04
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/10 08:51
- 数学 エステルレ博士の奇怪なABC予想の証明とは? 1 2022/04/18 15:37
- 数学 右の図で、BCの長さを四捨五入して、 小数第1位まで求めなさい。 図は三角形ABCで、∠Aが50度、 3 2022/07/28 01:17
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 10:07
- JavaScript JavaScriptの条件分岐について(yes noチャート)で悩んでおります。 Q1は2択(ab) 5 2023/04/15 11:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<!DOCTYPE html>あってますか?...
-
<!DOCTYPE html>あってますか?...
-
htmlの文字が縦書きになる
-
<!DOCTYPE html>あってますか?↑
-
WEBページを強制的に横画面で見...
-
静止画画像をクリックすると音...
-
ワードプレスで太字が反映され...
-
リンクバナーのHTMLタグ。画像...
-
goo は、放置?
-
HPレイアウトが同じページのヘ...
-
テーブルの行を折りたたみたい...
-
パソコンのマイク機能
-
HTMLで表をつくったのですがウ...
-
HTMLタグのあるCSVファイルを利...
-
テーブルタグのセルの幅の一部...
-
Duolingo のソースコードの名前...
-
Webページのリンクの貼り方を教...
-
1つの「ホームページビルダー2...
-
テーブルのセルデータを自動改...
-
コードを書いて下さい( ; ; )...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
テーブルのセルデータを自動改...
-
goo は、放置?
-
htmlソース文の 各行 改行位置...
-
1つの「ホームページビルダー2...
-
HPレイアウトが同じページのヘ...
-
CSS、Bootstrapについて contai...
-
CSSについて教えてください。 ...
-
静止画画像をクリックすると音...
-
、URL化させるにはどうしたらい...
-
テーブルの行を折りたたみたい...
-
css初心者 フレックスボックス...
-
WEBページを強制的に横画面で見...
-
Webページのリンクの貼り方を教...
-
Duolingo のソースコードの名前...
-
メモ帳の段落の揃え方
-
スマホ(android)のタッチパネ...
-
コードを書いて下さい( ; ; )...
-
HTMLで画像をポップアップで表...
-
角丸画像の背景色を透明にした...
おすすめ情報