自分はランチは一人で行く主義であるが、

同僚が話があるらしく、珍しくランチに誘われた。



現在、自分が在籍している会社では

4月に期を跨ぎ大幅な組織改変が行われるそうで、

派遣やバイトを大幅に解雇し、事業部レベルでの

解体が行われると噂されている。



彼は、デザイン部門のリーダー格であり、

デザイン部門は解体されるチームに名を連ねていて

解体後は

散り散りになり、その先どうなるか不安であるという

部下(ほぼ全員20代)からの意見に悩んでいた。



悩みはもっともではあるが、

まずは、なぜ不安を感じるかという点でいくつか整理してみた。


・ 勤務先は変わらない

・ 解体後も給料は変わらない

・ やる仕事は変わる可能性がある

・ 一緒に仕事をするメンバーが変わる可能性がある


一般的な人事異動と捉えてもらって構わない。

さて、ここで彼らが最も不安を抱いているのが、

何であるかについて聞いた。驚いたことに明確には分からないという。

何者かわからない物に怯え不安を感じているのだ。

(ただ、暗い廊下というだけで、確認できない幽霊を怖がるかの如く)



恐らく、彼らは「変化」を恐れているのだ。と推測した。



長くなりそうなので、続く。



[F]

マッチしたURLはアクセス禁止。HTTPステータスコードの403をレスする。


[G]

マッチしたURLは恒久的アクセス不可。HTTPステータスコードの410をレスする。


[R]

リダイレクトを意味する。HTTPステータスコードの302をレスする。

指定方式として[R=302]や[R=303]など指定する。


[C]

ルールを次のルールにチェインする。


[T]

MIMEタイプを指定する

[T=text/plain]


[L]

判定の終了を意味する。

それ以降のRewriteRuleは無視。


[N]

URLを指定したルールで書きなおし、再度最初からルールを繰り返す


[NS]

サブリクエストであるときにルールをスキップする


[NC]

大文字、小文字を区別せずに判定する。


[NE]

URLをエスケープしない


[PT]

次のルールに渡す


[E]

環境変数として設定できる。

[E=AAA: bbb ]の様に設定し、後処理で環境変数としてAAAを利用出来る。


[P]

PROXYモジュールを使用して他のサーバー(URL)にあるコンテンツを取得しその内容をクライントに返す


[S]

以降のルールをスキップする。

[S=2] スキップするルール数を指定する。


[QSA]

ルール適用前のURLにパラメータ(クエリーストリング)がある場合、

ルール適用後もそのパラメータを引き継ぐ。


※カンマで区切って複数指定可能

例:[QSA, L]など

htaccessでmod_rewriteを設定する場合、

そのディレクトリにしか効果がない場合があります。


例えば


/ index.html

- help

- contact_us


のように、helpとcontact_usというディレクトリがある場合、


/ index.html

.htaccess・・・①

- help

.htaccess・・・②

- contact_us

.htaccess・・・③


のように、各ディレクトリに.htaccessを作り

都度mod_rewriteの設定を行わないといけない。


例えば、どのページにアクセスに来ても、

まず指定のプログラムを起動してから

ページの読み込みを行いたい場合など

各ディレクトリに.htaccessを設置するのはいささか手間です。


その場合①のhtaccessに以下のように記述すると

全てのフォルダに同じmod_rewriteのルールが適用できます。


<IfModule mod_rewrite.c>
RewriteEngine on

RewriteRule ^/(.*)/$ index.php?directory=$1 [L]


</IfModule>


上の例では、全てのディレクトリに対して、

インデックスがコールされたら、

index.phpにディレクトリ名を渡してあげる例です。



これは、実在のディレクトリがある場合の対処法。


ディレクトリが実在しない場合は、


RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(..*)/$ /index.php?directory=$1


とすると、実在しないディレクトリへのアクセスは

index.phpにdirectoryパラメータが付与された形で

コールされます。


RewriteCond %{REQUEST_FILENAME} !-f

⇒ファイルが実在しない場合に直後のRewriteRuleに適用
RewriteCond %{REQUEST_FILENAME} !-d

⇒ディレクトリが実在しない場合に直後のRewriteRuleに適用