HITTOBITO

仕事

独自 CMS を作る vol.3 – .htaccess を書く

2017年10月04日 

Framework

はじめに

.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制作だけではなく、ネットワーク/サーバー、システム開発まで幅広く網羅。

この人が最近書いたものを見る

一覧

これを読んだ人にオススメ

ひっとびととは?

WEB制作・プロデュース会社『フューチャーヒット』の人々が趣味などをゆるく紹介するサイトです。
フューチャーヒットの「人々」が自由に、でも真剣に取り組んでいく様子をこの「ひっとびと」を通してお届けしていければと思います。

詳細はこちらから