【Web】オレオレフレームワークを作ってみる~リダイレクト編~

プログラミング PHP Web

【Web】オレオレフレームワークを作ってみる~リダイレクト編~

4月に入り、今年度入社の予定だった人たちは無事に就職できただろうか。
それよりも、来年や再来年まで影響があると思ったら就職氷河期の再来とも言える。

会社側も採用を決めてしまった以上は採用せざるを得ないというような話も聞く。
ブラックな印象が付いてしまっては大変ですものねぇ。

され、今回もオレオレフレームワーク。
内容はリダイレクト。

MVCパターンでの実装を考えた時に、入力されるURLとして以下のようになる。別なパターンでもいいのだが。
「https://zzzzzzzz.net/hoge/fuga/piyo」
これをまともに受け付けてしまってはただのページ無し404になってしまうので、index.phpにリダイレクトした上で後続の処理を行うのだ。
アクセスをindex.phpにまとめるといいますか。そんな感じです。

関係ないけど、hogeとかfugaとかpiyoとかはメタ構文変数と呼ぶ。
詳しくはWikipediaをご覧あれ。
別にふざけて使ってるわけじゃないwwww

では、いざ実践。


.htaccessを作成する

まずは、ドキュメントルートに「.htaccess」というファイルを作成。
内容を以下のようにする。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?params=$1 [QSA,L]
</IfModule>

意味としては
URLの書き換えモジュールを使わせてくれよぉ
ディレクトリを指定された場合じゃなくてさ
ファイルを指定された場合じゃないくてさ
そん時はindex.phpに転送するよぉ。
んでもって、ドメインより右側の値はパラメータださ。
と指定しているわけだ。

ま、こんな感じでOKでしょ。


index.phpを作成

このままだと確認もできないので、ドキュメントルートにindex.phpを作成。

<?php
if ( isset($_GET['params']) === true )
{
    $params = explode('/', $_GET['params']);
} else {
    phpinfo();
    return ;
}

var_dump($params);

そして「http://localhost/hoge/fuga/piyo」にアクセス。

こんなふうにパラメタが取れるわけだ。

array (size=3)
  0 => string 'hoge' (length=4)
  1 => string 'fuga' (length=4)
  2 => string 'piyo' (length=4)

あとは、コントローラなり、メソッドなりをパラメタで呼び出せばいいのだ。
カンタンよね。


しかし、正規表現ってば、いつになってもわかるようにならない。
さて、次は前回作成した自動クラスロードかな。

前の記事 次の記事