URLリライトの復習その2
関連記事:
UbuntuサーバのApache2でURLリライトを試してみる
URLリライトの復習とIE11のUser-Agent
.htaccessの有効化とサブディレクトリのアクセス制御
CentOSでのURLリライト
以前、URLリライトについての記事を書いた時は動作確認に Ubuntu Server を使っていたが今はCentOS(6.6)を使っているので、URLリライトが使えるか調べてみた。
/etc/httpd/conf/httpd.conf を見ると
LoadModule rewrite_module modules/mod_rewrite.so
という記述があるのでデフォルトでURLリライトが有効になっている。あとは .htaccess を使えるようにすれば .htaccess でURLリライトが可能になる。
サブディレクトリの.htaccessのRewritBaseとRewriteRule
RewriteRuleは書式は以下である。
RewriteRule <Pattern> <Substitution>
いろいろ試してわかったことを以下に箇条書き。
- パターンと照合される入力値は相対パスである。スラッシュではなく名前から始まる。よって、パターンとして "/○○" では入力値と一致しない。相対パスが一致するようなパターンを考えなければならない。
- Substitutionは "/" で始まればドキュメントルートからのパス。名前から始まれば相対パスである。
- パターンに一致して書き換えられた場合、RewriteBaseがあれば書き換えられたURL(のパス名)は "RewriteBaseの値+<Substitution>" が結果となる。
具体例として、以下のようなディレクトリ、ファイル構成を考える。
/(ドキュメントルート) ├abc.html ├sub │├.htaccess │├abc.html ・・ ・・ ・・
/sub/.htaccess(RewriteBaseとRewriteRurleのみ抜き出したもの)とその場合にURLリライトの結果の表を以下に示す。
例1
RewriteBase /sub/ Rewrite ^test\.html$ abc.html
元のURLのパス名 | URLリライトへの 入力 |
URLリライトの 出力 |
書き換えられた URLのパス名 |
---|---|---|---|
/sub/test.html | test.html | abc.html | /sub/abc.html |
/sub/sub2/test.html | sub2/test.html | パターンに 一致しない |
- |
例2
RewriteBase /sub/ Rewrite ^.*test\.html$ abc.html
元のURLのパス名 | URLリライトへの 入力 |
URLリライトの 出力 |
書き換えられた URLのパス名 |
---|---|---|---|
/sub/test.html | test.html | abc.html | /sub/abc.html |
/sub/sub2/test.html | sub2/test.html | abc.html | /sub/abc.html |
例3
Rewrite ^test\.html$ /abc.html
元のURLのパス名 | URLリライトへの 入力 |
URLリライトの 出力 |
書き換えられた URLのパス名 |
---|---|---|---|
/sub/test.html | test.html | /abc.html | /abc.html |
« composerのインストール | Main | Excelで就業時間を計算する式を考えた »
「Linux」カテゴリの記事
- Laravel4のインストール(2015.05.06)
- CakePHPのインストール(2015.06.14)
- PHPからPDOでPostgreSQLに接続する(2015.06.09)
- yumコマンド(2014.11.17)
- [CentOS 6.6]PHP5.5のインストール(2015.02.22)
「プログラミング、技術情報」カテゴリの記事
- PHPStorm 2018.1.7 に更新(2018.12.09)
- 技術メモをQiitaに移行(2016.01.24)
- batファイルを常に管理者権限で実行する(2011.10.27)
- 正規表現メモ:ものぐさ(最小)マッチング(2015.11.29)
- BASE64にエンコード/デコードするバッチファイル(2015.11.23)
TrackBack
TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/61405934
Listed below are links to weblogs that reference URLリライトの復習その2:
Comments