今までコピペしていた .htaccess の記述を理解するために調べた覚え書きです。
RewriteEngine on
RewriteCond %{REQUEST_URI} !/sp/
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone)
RewriteRule ^(.*)\.(html|php)$ sp/$1.$2 [R]
RewriteBase /
知識 0 なので最初は ヒィー! ムズカシソ-
って拒絶反応がでますが、
よく見る
と英語をペンパイナッポーケース![]()
で記述しているだけです。
とうことで、英語の意味を調べます。
| 英語 | 読み方 | 意味 |
|---|---|---|
| modify | モデファイ | 変更・修正 |
| rewrite | リライト | 書き換え |
| condition | コンディション | 条件 |
| rule | ルール | ルール |
あとは、パイナップル
にペン
を刺す要領です。
rewite と condition で RewriteCond となり、意味は「書き換え条件」です。
rewite と Rule で RewriteRule となり、意味は「書き換えルール」です。
これなら、何をしているのかわかります ![]()
最初に記述したコードには、RewriteCond が2つあります。
書き換えの条件を2つ指定しているということです。
書き換えの条件を満たす場合に、RewriteRule の書き換えのルールに従って、書き換えをしているということですね ![]()
%{REQUEST_URI} !/sp/ は、アクセスしてきたURLに /sp/ がない場合という意味です。
! は否定を表していますね。
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone) は、アクセスしてきたデバイスが (iPod|iPhone|iPad|Android|Windows\ Phone) だった場合という意味です。
これらの条件に該当する場合は、^(.*)\.(html|php)$ sp/$1.$2 [R] というルールでURLの書き換えているということですね。
^(.*)\.(html|php)$ sp/$1.$2 [R] という記述は、謎記号が連射されているので、正規表現です。
RewriteEngine on は、定型文のような感じで、書き換えをしたい場合に on を指定します。
RewriteBase / は書き換えするときのベースのURLです。
何となく理解できました ![]()