.htaccess 変数の$1

2010/09/15

.htaccess活用法(6)

RedirectMatch (.*)\.gif$ http://www.anotherserver.jp$1.jpg

簡易な説明は下記。
「RedirectMatch A B」だと「AへアクセスがあったらBへ転送」。
正規表現を簡単に説明すると「括弧()」で囲まれた部分に入るものが「$1」に置き換え。

上記を元に例をあげてみる。(自サイトが「http://www.example.com」とする。)
まず「http://www.anotherserver.jp$1.jpg」を分解する。
すると「http://www.anotherserver.jp」「$1」「.jpg」に分解できる。

次に「/test/abc.gif」へアクセスがあったとする。
「/test/abc.gif」を「(.*)\.gif$」にあわせて分解する。
すると「(.*)」が任意の文字列になるから「/test/abc」になり「\.gif$」は「.gif」。
「$1」は「括弧()」で囲まれた部分だから「$1 = /test/abc」。
だから「http: //www.anotherserver.jp」と「$1 = /test/abc」と「.jpg」を合体させた「http://www.anotherserver.jp/test/abc.jpg」に転送されるという意味になります。

RewriteRule ^(.*/)?files/(.*) wp-content/blogs.php?file=$2 [L]

上記の場合だと「$2」は「^(.*/)?files/(.*)」の正規表現の一つ目「^(.*/)」ではなく、二つ目「(.*)」を指してるっぽい

ってことは何番目の正規表現かを指定するのに「$1」とか記述するってことかなぁ。

新着(ニュース関連以外)

2018-07-26
年賀状で「新春」とか書くけど・・・何故なんだろうと8月を目前にした今、疑問に思った。
2018-05-16
PHPで画像のヘッダ情報(?)の「Orientation」を元に画像回転させたい。
2018-03-05
Android Studioをインストール。エミュレータを軽くするトコまで終わらせたかったけど、挫折した。
2018-02-23
プッシュ通知について調べてた時にでてきたServiceWorker。そのServiceWorkerについてのメモ。
2017-12-13
jqueryで取得したDOM要素をオブジェクトじゃなくて、配列で受け取りたい