MW211 EXIT

devlog
MVC第03回/「index.php」を窓口にする(補足2)
2011年11月08日
「index.php」の横(同一フォルダ)に「.htaccess」を置き、以下のように記述する。
┌──────────────────────────────────────┐
│# 設定                                                                      │
│RewriteEngine On                                                            │
│RewriteBase /mvc/                                                           │
│RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php                          │
└──────────────────────────────────────┘
ってことで、とりえあず動くのだが、Apacheの「htpd.conf」に
設定してしまった方が処理速度が速いので、
本番的な場合はこちらに移行した方がよさそう。
#いろいろ微調整できるから、テスト段階では「.htaccess」のままでもいいかも

で、「htpd.conf」の中身だが、以下のような感じでディレクトリ毎に
セクションが分かれているので、
影響を及ぼしたいディレクトリに以下のように記述(転記)する。
┌──────────────────────────────────────┐
│<Directory "C:/xampp/htdocs">                                               │
│:                                                                          │
│<IfModule mod_rewrite.c>                                                    │
│  RewriteEngine On                                                          │
│  RewriteBase /mvc/                                                         │
│  RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php                        │
│</IfModule>                                                                 │
│</Directory>                                                                │
└──────────────────────────────────────┘
上記は「C:\xampp\htdocs」にあった「.htaccess」と同等の動きになるよう
「htpd.conf」を設定する場合(これが有効になればこの「.htaccess」は不要)。

あ、ちなみに「htpd.conf」で以下が有効になっているので、確認してみるといいかも。
┌──────────────────────────────────────┐
│LoadModule rewrite_module modules/mod_rewrite.so                            │
└──────────────────────────────────────┘
分類:MVC
MVC第02回/「index.php」を窓口にする(補足)
2011年10月29日
配下に上位の「.htaccess」にとるRewriteの影響を受けないフォルダを作りたい場合。

なんのことはない、以下のような内容の「.htaccess」を置いて
打ち消してあげればよい。
┌──────────────────────────────────────┐
│RewriteEngine Off                                                           │
└──────────────────────────────────────┘

近い方の「.htaccess」が優先されるから。

例えば、ルートにRewriteの「.htaccess」を置くことになったけど
配下に一時的なworkフォルダを置きたい場合とかに、
そのフォルダを上記設定にして例外にしてあげる時とか有効だ。
分類:MVC
MVC第01回/「index.php」を窓口にする
2011年10月27日
「index.php」を窓口とするため、どのような(サブ配下の)アドレスが入力されても
ここに集まるように設定する。(以下「mvc」フォルダ直下での話とする)

「index.php」に以下のように記述して、実行結果をみるようにする。
┌──────────────────────────────────────┐
│<?php                                                                       │
│echo '「index.php」が実行されました。';                                     │
│echo '指定されたURIは「' . $_SERVER['REQUEST_URI'] . '」です。';            │
│?>                                                                          │
└──────────────────────────────────────┘

「index.php」の横(同一フォルダ)に「.htaccess」を置き、以下のように記述する。
┌──────────────────────────────────────┐
│# 設定                                                                      │
│RewriteEngine On                                                            │
│RewriteBase /mvc/                                                           │
│RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php                          │
└──────────────────────────────────────┘

これで準備OK。

まずは普通に「index.php」(「~/mvc/index.php」)を実行(※)した場合。
※ブラウザのURL入力欄に入力する
┌──────────────────────────────────────┐
│「index.php」が実行されました。指定されたURIは「/mvc/index.php」です。      │
└──────────────────────────────────────┘

続いて、サブフォルダ「~/mvc/abc/」を実行した場合。
┌──────────────────────────────────────┐
│「index.php」が実行されました。指定されたURIは「/mvc/abc/」です。           │
└──────────────────────────────────────┘
「index.php」が実行されて、
「$_SERVER['REQUEST_URI']」で指定されたURIが見られる。
これができれば、一元制御ができる。

ちなみに「~/mvc/abc/def.php」の場合も同じ。
┌──────────────────────────────────────┐
│「index.php」が実行されました。指定されたURIは「/mvc/abc/def.php」です。    │
└──────────────────────────────────────┘
とにかく「index.php」が窓口になってくれている。
分類:MVC
前へ 1 次へ