こんにちは。今回はApache HTTP Serverと.htaccessに関する記事です。
基本的にはWebフレームワークのURLに飛ばして問題ないけど、 あるURLの場合には静的なページに遷移させたいことってありますよね。
- こんな感じ
- http://hoge.co.jpで、CakePHPアプリケーションにアクセス
- http://hoge.co.jp/any_str/hogera.htmlには、別の静的ファイルを配置してアクセスさせたい
- (上記例ではコロンを全角にしています)
その場合、.htaccesに下記の記述を行うことで実現可能です。
- .htaccessに以下を指定する
RewriteCond %{REQUEST_URI} /any_str/ RewriteRule ^(.*)$ $1 [L]
こうすることで、リクエストURIにany_strを含む場合、それ以降のRewriteRuleの評価をせず、リクエストされたURIに転送されるようになります。
具体的な利用例
CakePHPにおいて、ある文字を含む時はCakePHPのアプリケーションに転送させたくない場合
# CAKEPHPDIR/.htaccess <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{REQUEST_URI} /any_str/ RewriteRule ^(.*)$ $1 [L] RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L] </IfModule>
CakePHP等のフレームワークとは別に、静的サイトやCGIアプリ等を配置している場合などに使えそうですね。