目次

この記事の目次です。

1. .htaccessのRewriteRuleなどで使う正規表現とは何か?
2. .htaccessでよく使う「^」の意味
3. .htaccessでよく使う「$」の意味
4. .htaccessでよく使う「\.」の意味
5. .htaccessでよく使う「.」の意味
6. .htaccessでよく使う「*」の意味
7. .htaccessでよく使う「$1」の意味

参考)正規表現のサンプル
関連記事
更新履歴

1. .htaccessのRewriteRuleなどで使う正規表現とは何か?

はじめに、RewriteRuleなど.htaccessので使用できる正規表現についてです。

正規表現とは

正規表現は、テキストのパターンを表現する方式の一つです。 例えば、 すべての "images" ディレクトリの下の、すべての .gif と .jpg ファイル は /images/.*(jpg|gif)$ と書くことができます。

.htaccess(Apache HTTP Server)で使用できる正規表現

.htaccess(Apache HTTP Server)では、PCREライブラリが提供するPerl互換正規表現が使用できます。

2. .htaccessでよく使う「^」の意味

.htaccessのリダイレクトでよく使う正規表現の1つ目は「^」です。 URLやパスの始まりを表す場合は「^」を使用します。
例)^htaccess-support\.com$

3. .htaccessでよく使う「$」の意味

.htaccessのリダイレクトでよく使う正規表現の2つ目は「$」です。 URLやパスなどの文字列の終わりを表す場合は「$」を使用します。
例)^htaccess-support\.com$

4. .htaccessでよく使う「\.」の意味

.htaccessのリダイレクトでよく使う正規表現の3つ目は「\.」です。 正規表現で使用する文字に「.」がありますので、ドメインの「.」は「\.」で表現します。
例)^htaccess-support\.com$

5. .htaccessでよく使う「.」の意味

.htaccessのリダイレクトでよく使う正規表現の4つ目は「.」です。 「htaccess-support.com」とした場合は「htaccess-support.com」「htaccess-supportacom」「htaccess-supportbcom」・・・という文字列がヒットします。 ドメインの「.」を「\.」にしなくてもヒットする場合が多そうですね。

6. .htaccessでよく使う「*」の意味

.htaccessのリダイレクトでよく使う正規表現の5つ目は「*」です。 正規表現では「*」は直前の1文字を0回以上繰り返す場合にヒットします。 「.*」とすると任意の文字列が表現できます。

7. .htaccessでよく使う「$1」の意味

6つ目は「$1」です。 正しくは正規表現ではありませんが、正規表現と関連した.htaccessのリダイレクトでよく使うので取り上げました。

$1の意味

$1は、指定されて受け取ったURLを再利用するための変数です。 正規表現から最初に取り込まれたグループを意味する変数です。 正規表現の (と) の間の内容が再利用できます。

$1の例

たとえば、以下のリダイレクトの記述がある場合、「^(.*)」の条件に一致したURL(ドメインの次以降の文字列)を$1に当てはめることができます。

RewriteRule ^(.*) https://my.domain.com/$1 [R=301,L]

$2も使える

正規表現に2番目の括弧のセットがある場合、$2にはその括弧の内容が含まれます。

RewriteRule ([a-z0-9/-]+)-([a-z]+).html$ $1-$2.php [NC,L,QSA]

関連記事

関連記事です。

リダイレクト

用語の意味や.htaccessの設定(正規表現やパラメータ)などリダイレクトについて解説しています。

詳細

参考)正規表現のサンプル

正規表現のサンプルです。

ドメイン名を表す正規表現

ドメイン名を表す正規表現の例です。

^((?!-)[A-Za-z0-9-]{1, 63}(?<!-)\.)+[A-Za-z]{2, 6}$

更新履歴

更新履歴になります。

トップ手順・方法.htaccessのリダイレクトでよく使う正規表現