腹が減ってはなんとやら

大学院博士課程から脱落しました。

.htaccessを追う-CakePHPをもくじとしてPHPを学ぶ01

とりあえず、cakephpを置いたURL(ここではhttp://example.jpとします)にリクエストがあった時、どのようにファイルが読まれていくか確認したいと思います。 それには.htaccessの理解が必要です。 .htaccessにはApacheの「mod_rewrite」が書かれていて、要求されたURLを書き換えています。 このため、PHPが処理を始める前にこちらでイイ感じに

今、http://example.jpは以下のようなディレクトリ構造をしてます。

example.jp/
    .girignore
    .htaccess
    CONTRIBUTING.md
    README.md
    app/
    build.properties
    build.xml
    index.php
    lib/
    plugins/
    vendors/

.htaccessがありますね。cakeの中にはここ以外にexample.jp/app/とexample.jp/app/webroot/の中に.htaccessがあります。 それぞれの中身は

1) example.jp/.htaccess

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

2) example.jp/app/.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

3) example.jp/app/webroot/.htaccess

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

となっています。

1)example.jp/.htaccess

RewriteEngine onはRewrite機能が有効ですってこと。 RewriteRuleの行では正規表現を使ってURLが書き換えられています。 要するに、http://example.jpでアクセスしたらhttp://example.jp/app/webroot/http://example.jp/hogehogeでアクセスしたらhttp://example.jp/app/webroot/hogehogeへ行けって書いてます。

2)example.jp/app/.htaccess

1)example.jp/.htaccessと同じです。http://example.jp/appにアクセスすると、http://example.jp/app/webroot/に飛ばされます。

3)example.jp/app/webroot/.htaccess

1), 2)もしくは直接ここに来たらこの.htaccessが読まれます。1),2)とは違ってRewriteCondという行があります。これは指定されたファイルやディレクトリがあればそれを読みなさいってこと。 なければ最終的にindex.phpが読まれるのですが、この時、例えばhttp://example.jp/hogehogeでアクセスしていたらhttp://example.jp/index.php/hogehogeと書き換えられます。 こんな感じ。

結論

後に、CakePHPを使い出すと http://example.jp/コントローラ/メソッド/パラメータ なんて形でリクエストすることになると思うんだが、これが http://example.jp/app/webroot/index.php/コントローラ/メソッド/パラメータ と書き換えられ、とりあえずexample.jp/app/webroot/index.phpを読むことになります。

参考

はじめに-CakePHPをもくじとしてPHPを学ぶ00

この連載?の精神はDispatcherまで辿りつけない編 - CakePHPをもくじとしてPHPを学ぶシリーズ01に倣います。 ある程度PHPは分かってきたので、CakePHPを使いながら先人達が築き上げたソースを吸収していってPHPをマスターしようってことです。

CakePHP公式のブログチュートリアルをやりながら、できるだけソースを掘り下げて理解していきたいと思います。 CakePHPのVersionは2.3.4です。 では次回から具体的に進めていきます。

"はてな"ブログ上にプログラムソースを載せる

前回の記事で ブログ上にプログラムソースを載せるについて書きました。 問題点として、はてなブックマークで貼られる自動のキーワードリンクを挙げました。

Markdown記法ってのは恥ずかしい話知らなかったんですが、それで書くと

<?php
    echo "Hello World!";

ってな感じでソースの中のphpにキーワードリンクが貼られない! 仕組みはよく分からんけど、はてなブログ内ではこっちで書けばいいかな。Markdown記法も使い慣れた方がいいかもやし。

ブログ上にプログラムソースを載せる

ブログをはじめるにあたり、今後プログラムソースを載せることがよくあると思うので、よく見かける

<p>いい感じ</p>

みたいにいい感じな表示をさせる方法について調べたのでまとめます。

簡単でした。

Syntax Highlighter Scripts Generator 」を使います。

このページに行くと2つの選択肢があります。1つはテーマ(デザイン)でもう1つはどの言語を上みたいにいい感じに表示させるようにするか。

テーマのサンプルはここで見れます。

選択して下の「Generate」ボタンを押すと、












のようなスクリプトが生成されるので、それをコピーしてブログのhtmlソースのhead内に貼り付ければ完了です。

 

はてなブログにおいては、ダッシュボードのデザイン>カスタマイズ>ヘッダでタイトル下と書かれたテキストエリアに貼り付けることで利用できるようになります。

使う時は、HTMLで

<pre class="brush: html">
    //ソース
</pre>

ってな感じでOK。

 

問題点

  • はてブでは自動でキーワードリンクが貼られるらしい。そのせいで、埋め込んだソース内に勝手にリンクを記述してくる。どうしたもんか。

参考

ブログを始めました。

某大学院博士課程で物理学を専攻していましたが、脱落しました。

かなり前からうすうす気づいてたけど研究がそんなに面白くなかった。

 

これからはWEB業界で生きていきたいと思います。