• ベストアンサー

.htaccessの正規表現

Perlの正規表現なら少しだけ知っています。 .htaccessの正規表現で、 <Files xx.gif> と <Files 'xx.gif'> は同じですか? <Files "xx.gif"> だと変数展開の動作をしようとするために上記の2つより多少重くなりますか? *.gifとerr.logを1つの<File>タグで記述する場合はどう記述すればよいですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.1

"xx.gif" と 'xx.gif' と xx.gif は同じはずです。 なお、<Files ここ> に書けるのは正規表現ではありません。ファイルマッチと言って、? が任意の1文字、*が任意の文字列、特殊文字はそれだけです。 正規表現を書くには、Files の後に ~ を書きます。 <Files ~ "^(.*\.gif|err\.log)$"> (正規表現はご存知とのことなので解説はしません) Apacheを普通にインストールしてあると、http://ホスト名/manual/ でドキュメントが見られるはずです。

関連するQ&A

  • .htaccessの正規表現

    .htaccessの正規表現で質問があります。 <Files ~ "\.(html|gif|jpeg|png)$"> 例えばこのような場合最後のファイル名が「html」「gif」「jpeg」「png」に適用されますが、~(チルダ)はパターンマッチ、(||)(カッコとパイプライン)はパイプラインで区切ってそのいずれか、$(ドルマーク)は行末のマッチングと分かったのですが、\.(円マークとドット)が分かりません。どういう意味なんでしょうか? 例えば、次のように記述すると間違いなんでしょうか? <Files ~ "(html|gif|jpeg|png)$"> また、 <Files password.html> このような記述が載っていたのですが、ファイル名がこのような場合ダブルクォーテーション(")で囲まなくていいのでしょうか? また、*(アスタリスク)と?(クエスチョンマーク)は必ず1文字以上でなければいけないのでしょうか?0文字ではダメなんでしょうか? 回答よろしくお願いします。

    • ベストアンサー
    • HTML
  • MFCで正規表現

    Visal Studio 2005のC++で、MFCアプリとして、正規表現を行う簡単なプログラムを書きたいのですが、方法がわかりません。 できれば、perl互換が良いですが、MFCで一般的なものでかつ、 高速で正規表現の処理をさせたいので64bitでコンパイルしても問題ない ものが知りたいです。 ちなみにVBのRegExpとPerlで正規表現は使ったことがありますので、正規表現自体は多少知っております。 MFCでどのように記述するかが知りたいです。 よろしくお願いいたします。

  • 正規表現

    変数$aのなかに変数$bが含まれていたらをperlの正規表現であらわすと どのようになるのでしょうか?if($a=~ /$b/)ではうまくいかないのですか?

    • ベストアンサー
    • Perl
  • 正規表現の書き方を教えてください

    正規表現の書き方を教えてください 膨大なサイトデータに含まれる、忍者ツールズのアクセス解析タグを 複数行置換ツールを使って、一気に削除したいです 正規表現を使えば、以下のアクセス解析タグを削除できると思うのですが どのように正規表現を使って記述すれば、いいのかわかりません ・アクセス解析タグ中の「15695600k」 ・リンク先(http://futoko.jpnz.jp、kateikyousi.rentalurl.net) ・アンカーテキスト(不登校 高校、家庭教師) は、タグによって変化する変数です ■忍者ツールズのアクセス解析タグのソース例 http://analyze.ninja-web.net/ ■使用する複数行置換ツール http://www.vector.co.jp/magazine/softnews/060905/n0609051.html ※このツールでできない場合は、用件を満たすツールを教えていただけますと幸いです よろしくお願いいたします

  • 複数のperlの正規表現をひとつにまとめるには。

    こんにちわ。perlの正規表現について教えてください。 unless ($a =~ /[0-9]/){ &err1('数字をいれてください'); } unless ($b =~ /[0-9]/){ &err1('数字をいれてください''); } unless ($c =~ /[0-9]/){ &err1('数字をいれてください''); 上の3つのunless文は$a,$b,$c以外はすべて同じなのでこれをひとつにしたいのですが、どうやって記述すべきでしょうか?($a,$b,$c=~ /[0-9]/)とか($a =~ /[0-9]/ or $b =~ /[0-9]/ or $c =~ /[0-9]/)ってやってみてもだめでした^^教えてください。

    • ベストアンサー
    • CGI
  • 正規表現が読めない

    諸般の事情でperlスクリプトに手を入れることになりました。 perlについてはまったくの素人であることに加えて、正規表現が読めません。お恥ずかしいのですが、下記を読み下していただけないでしょうか。 (変数のリスト) = map{/^"(.*)"$/ ? scalar($_ = $1, s/""/"/g, $_) : $_} ($tmp =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g); $tmpはカンマ区切りのテキストです。

    • ベストアンサー
    • Perl
  • Perl・正規表現が分かりません

    Perlでプログラムを書く場合、 ある文字列の文字数が5文字且つ、文字列の先頭に[0-5A]を必ず含み、そして残り4文字にも[0-5A]のみを必ず含む場合、Trueを表示。 それ以外はErrを表示する。 多分、全て、正規表現でできると思うのですが、分かりません。教えていただけないでしょうか? 宜しくお願い致します。 $test = "0AAAA"; if(正規表現){ print "True"; }else{ print "Err"; } ↑結果:True $test = "aAAAA";の場合、 結果:Err

    • ベストアンサー
    • Perl
  • 正規表現の o オプションの意味が分かりません

    正規表現の質問です。 言語はPerlで組んでいます。 いくつかのhtmlファイルを順に開き、以下のようなコードを実行します。 $http{BODY}=~ /(?<=\[ No\.)([0-9]{$digit})(?= \/ $num)/o; ここで $http{BODY} 読み込んだhtmlファイル $digit 変数。整数値。 $num 変数。整数値。 この正規表現で、 ・・・・[ No.2 / 3 ]・・・・ といった感じの文字列から、この場合は「2」をマッチさせようとしました。 ところが最初に読み込んだファイルではうまくマッチしたのですが、2番目のファイルではマッチしません。 o オプションを外すとうまくいきました。o オプションは変数展開を1回行うとのことです。元のファイルはやたらとでかいので、o オプションを付けたら少しは早くなるかなと思いつけていたのですが。。。 ネットで調べると、 while( $s = <FH> ){ # 一度だけ展開する if ( $s =~ /$arg/o; ){ .... } このような用例で、$argは変数というよりも、セットされた文字列として評価されるとあります。でも前述の正規表現の2つの変数、$digitと$numは普通に値を書き換えられていましたけど。。。 それとも o オプションを付けた正規表現では、その正規表現を処理するためのメモリ領域に一度変数の値を取り込むと、二度と読み込むことをしないということでしょうか。だから変数の値が変わっても、正規表現が用いるメモリ領域の値は変化しない。。。 でも $http{BODY}=~ /(?<=\[ No\.)([0-9]{$digit})/o; だったらちゃんと$digitの値が変わったことに対応しているんです。他にもいっぱい o オプションを付けた正規表現を用いていますけど、全部正常に作動しています(バグに気づいていないだけかもしれませんけど)。 前述の正規表現とこれら正常に作動する正規表現の違いは、後者が変数1個であるのに対して、前者は2個であるということです。「変数展開を1回行う」の意味は、変数1個にしか対応しないという意味なのでしょうか。でも前者も最初のファイルだけなら2個の変数に対応しているのです。 どういうことなのでしょう。

    • ベストアンサー
    • Perl
  • perlでの正規表現について教えてください。

    たとえば、 $A = 'aaa/bbb/ccc/ddd/eee/fff/ggg' というものがあったときにperlの正規表現でddd/のすぐ後の部分を抜き取って違う変数に入れたいのですが、それを正規表現で切り取りたいのですが、どうしたらいいかわからないです。 初歩的な質問ですが、お答えいただければ幸いです。 よろしくお願いします。

  • .htaccessの使い方

    .htaccessを使って、URLの正規化をしたいのですが、既に.htaccessファイルが別の目的でディレクトリ内に存在していますが、同時に動作をさせるにはどうしたらよろしいのでしょうか? 既にある.htaccessに、追加して目的のタグを書き込めば良いのでしょうか? ちなみにサーバーは、さくらレンタルサーバーです。

    • ベストアンサー
    • SEO

専門家に質問してみよう