cakePHPで変なアクセスがある!?
はい、タイトルで何言ってるかわかりませんね。
私も実際この現象に遭遇したときの感想ですw
結論から書くと、
【結論】
画像、CSSなどで実際に存在しないパス&URLを指定していると、サーバにHTTPアクセスを行う!!
だから何と・・・何が問題になったかというと
【どんな現象】
・経緯
app_controller.phpにログイン認証の処理を入れてます。
ログイン認証が上記の現象の時に、ログインエラーになる。
ちなみに、PC版、携帯版、管理画面版の3種類の機能をcakePHPのWebservicesを使って分けています。
管理画面、携帯版を使用していると、上記現象の時にログインが切れました。(作り方がわるい?とういのは置いといて)
はじめは現象の意味がマッタクわかりませんでした!!デバックをしているうちに、奇妙なアクセスがあるじゃないですか。
AppControllerにログ($this->paramesを出力)を仕掛けていたのですが、中身の値がないアクセスがあります。
このアクセスのためにログインが切れていることがわかったのですが、なぜこんなアクセスがあるのかわかりません。
そこで、$_GETをログ出力して、どんなURLをアクセスしているのか確認したところ、画像ファイルのURL宛てです。
一瞬???でしたが、その画像ファイルを確認したところ、パスが間違っていることが判明、HTMLのパスを修正すると
アクセスが無くなります。
【対策】
諸悪の根源は、app/webrootにある.htaccessです。
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
上記のルールのため、画像が無いと、アクセスが来ます。
なら、画像やCSSなどの場合は、アクセスしないルールを追加すれば宜しい!!はず・・・
やり方は、何だったか、覚えてないので・・・・
確認して追記します。
【2007/11/12 追記】
.htaccessへの記述
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.(cgi|css|gif|jp?g|png)$
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]