仕事
独自 CMS を作る vol.3 – .htaccess を書く
2017年10月04日 よっしー
はじめに
.htaccess を使って、環境変数の設定と、リクエストルーターを構築してみます。
.htaccess の中身
まずは、こんな感じに作ってみました。
SetEnv ENV_MODE development
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
環境設定
これも FuelPHP の挙動をパクります。
SetEnv CS_ENV_MODE development
動作モード | 説明 |
---|---|
production | 本番 |
staging | ステージング |
development | 開発 |
prefix に CS
を付けておき、.htaccess で動作モードを設定するようにします。
.htaccess で動作モードを設定できるようにしておくことで、アプリケーションのプログラムを入れ替えても、動作モードに影響が出ないようになりますから、デプロイが簡単になります。
index.php にすべてのアクセスを集めてみる
ルクエストルーターを使って、例えば、hoge.com/ctrl/act/p1/p2
みたいな URL でアクセスしたら、ctrl controller クラスの、act action メソッドが起動して、p1, p2 にパラメータを渡すような仕様にしたいと思います。
そのために、どんなURLでアクセスしても、とりあえず、index.php が応答するような .htaccss を書きます。
RewriteRule ^(.*)$ index.php?/$1 [L]
これで、どんなURLでアクセスしても、index.php が起動します。
ただ、これだけだと問題があって、js や css にアクセスしようとしても、index.php が起動してしまいます。
なので、ファイルが実在する URL にアクセスした場合は、そのまま返すようにします。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
完成
さいごに
.htaccess 便利ですね。
この記事を書いた人
-
よっしー
ディレクター (東京支社)
ディレクター
(東京支社)
田畑では愛車トラクターを乗りこなし、米も作る農家が本業というIT系ファーマー、いや、ファーマー系エンジニア? こだわりのあるモノ作りが得意。野菜とWEBの旬な情報はお任せ! 新しい技術やサービスは、まず自ら使ってみる事をモットーにしているプロジェクトマネージャー。WEB制作だけではなく、ネットワーク/サーバー、システム開発まで幅広く網羅。
田畑では愛車トラクターを乗りこなし、米も作る農家が本業というIT系ファーマー、いや、ファーマー系エンジニア? こだわりのあるモノ作りが得意。野菜とWEBの旬な情報はお任せ! 新しい技術やサービスは、まず自ら使ってみる事をモットーにしているプロジェクトマネージャー。WEB制作だけではなく、ネットワーク/サーバー、システム開発まで幅広く網羅。
この人が最近書いたものを見る
これを読んだ人にオススメ
最新の3件
タグ一覧
WEB制作・プロデュース会社『フューチャーヒット』の人々が趣味などをゆるく紹介するサイトです。
フューチャーヒットの「人々」が自由に、でも真剣に取り組んでいく様子をこの「ひっとびと」を通してお届けしていければと思います。