“.htaccess” カテゴリのアーカイブ

CakePHP は大変良く出来ていて、既存のサイトにすんなり導入することができる。例えば、すでにある public_html の内容をそのまま CakePHP の webroot へ移動すればいい。何事もなかったかのようにそのまま利用できる。この方法を使えば phpMyAdmin や wordpress など複雑なものもそこに入れてしまえばいい。

しかし、内部で転送が何度も行われることになったり、実際のディレクトリと異なる場所に設置されているため、場合によっては不都合があるかもしれない。例えば wordpress を webroot に設置した場合、何もなければ / にアクセスすれば webroot の内容が出る。が、内容によっては /app/webroot/ と表示されてしまうことがある。また、未検証だが次回以降もログイン状態を保持する cookie が保存できないのもこれに関連があるのかもしれない。もちろん、普通に利用する分には何ら問題はない。

通常は素直に webroot に置くとして、 理由があって CakePHP の .htaccess による mod_rewrite を回避するためには以下のようにする。なお、ここでは /app と同列に別のシステムを置くものとする( = /app, /blog など)

<IfModule mod_rewrite.c>
   RewriteEngine on

   # type A
   RewriteCond %{REQUEST_URI} ^/blog/(.*)$
   RewriteRule ^.*$ - [L]

   # type B
   #RewriteRule    blog/(.*) blog/$1 [L]

   # cakephp default
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

◆参考文献

Comments コメントなし »

.htaccess basic authorizationをCORESERVERで行う。

まず、.htaccessに以下を記入する

AuthUserFile /home/hogehoge/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

※「.htaccessでBasic認証にチャレンジ」より引用

このエントリの続きを読む »

Comments コメントなし »

WordPressは非常に有名なブログプログラムだ。開設してすぐにスパムの嵐に襲われることになる。pluginを使うなどすると効果的に阻止できるが、APIキーが必要だとかいろいろあるので、ここでは.htaccessで接続を拒否する方法を考える。

今回のは特定のIPアドレスを使っているターゲットを拒否する。

IPアドレスで拒否するということは、相手が常に同じIPアドレスを使っているということが確認されている場合に限る。WordPressではコメントを投稿したIPアドレスが記録されているので、多いものは拒否してしまうことにする。ただ、しばらくしたら解除してあげる必要があるかもしれない。例えば相手がCATV回線などで半固定的にIPアドレスを使っていたとしても、原則的にDHCPによる動的配信だから、何かの拍子に相手のIPアドレスが変更になった際には無害の人を拒否してしまうことになる。なお、mod_rewriteを使わずに単純拒否する。

order allow,deny
allow from all
deny from 188.92.xx.xx

※あまりにもひどいので今回はこのような処置をしたけれど、普通のスパム程度ではリスクもあるし、このような処置をする必要はない。
※相手が高度な操作をすると、偽のIPアドレスを使ったパケット通信をすることもできるそうだ。

◆参考文献

Comments コメントなし »

 何かしらの完成しているシステムに手を加えずに特定のアクションを拒否するために.htaccessを利用する

coreserverでとりあえず動作したので:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteCond %{QUERY_STRING} !action\=addglossary
   RewriteCond %{QUERY_STRING} !action\=addcategory
   RewriteCond %{QUERY_STRING} !action\=addnews
   RewriteCond %{QUERY_STRING} action\=add [OR]
   RewriteCond %{QUERY_STRING} action\=ask [OR]
   RewriteCond %{QUERY_STRING} action\=contact [OR]
   RewriteCond %{QUERY_STRING} action\=login [OR]
   RewriteCond %{QUERY_STRING} action\=open [OR]
   RewriteCond %{QUERY_STRING} action\=register
   RewriteRule (.*) http://www.foobar.jp/ [R=302,L]
</IfModule>
AddHandler application/x-httpd-phpcgi .php

Comments コメントなし »

CakePHP でテストサイトを作ってみた。サブドメインで。
バグもあるしまだ見せられるものでもない。

じゃぁ見せないようにするにはどうしたらいいか?

 条件:

  • 自分は見られる
  • 他の人は見られない
  • ただ403ではなく、見られないよーっていうメッセージを表示する

このエントリの続きを読む »

Comments コメントなし »