さくらインターネットで CakePHP

Posted by muchag | .htaccess,CakePHP,さくらインターネット | 2011-06-06 (月) 1:01:52

さくらインターネットで CakePHP を利用するには
.htaccess のルールがあるとのこと。

【環境】
[CakePHP] 1.3.10
ディレクトリ構成

さくらインターネットでは

/home/(アカウント名)/www

が Web 公開ディレクトリ。

よって公開したくないファイル群は

/home/(アカウント名)

に配置する。

今回は主要3点セット cake, app, webroot を以下のように配置した。
ちなみに、webroot は directory3 とリネームしてある。

/home/(アカウント名)/directory1/app
/home/(アカウント名)/directory1/cake
/home/(アカウント名)/www/directory2/directory3

 

.htaccess

この配置で以下のように設定したら稼動した。

/home/(アカウント名)/www/directory2/directory3/.htaccess
  1. <IfModule mod_rewrite.c>
  2.     RewriteEngine On
  3.     RewriteCond %{REQUEST_FILENAME} !-d
  4.     RewriteCond %{REQUEST_FILENAME} !-f
  5.     RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
  6.     RewriteBase /directory3
  7. </IfModule>

6行目を追加。

参考元サイトでは他にも設定が必要なことが書いてあるが
現在のところこれだけで稼動している。

またおかしくなったら加筆・修正する。
 

不思議

っていうか、webroot を directory3 とリネームしてあるのに

/home/(アカウント名)/directory1/app/.htaccess


RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]

これで動いている意味がわからない・・・。

それと、参考元サイトを見て気がついたんだけど
「cake インストールフォルダ」って、CakePHP を DL して解凍したときに
app, cake ・・・が入っているフォルダでしょ?

ここに配置されている .htaccess ファイルも index.php ファイルも
こういうディレクトリ配置で置き場所がわからない・・・つまり無視している。
でも動いている・・・不思議。 🙄
 
参考元サイト:CakePHP Users in Japan フォーラム さくらインターネットで404エラー

.htaccess,CakePHP,さくらインターネット | 2011-06-06 (月) 1:01:52 |

BASIC 認証

Posted by muchag | .htaccess | 2011-06-06 (月) 0:02:42

Web 公開ディレクトリに BASIC 認証を掛ける手法。

.htaccess

認証をしたいディレクトリに以下のような .htaccess ファイルを配置。

.htaccess
  1. #htpasswd
  2. AuthUserFile /home/hoge/.htpasswd
  3. AuthGroupFile /dev/null
  4. AuthName "Please enter your ID and password"
  5. AuthType Basic
  6. require valid-user

2行目は、ID とパスワードを記載したファイルへの絶対パス。

4行目は、認証ダイアログに表示したい文言。
 

パスワードの作成

phpspot:htpasswd用パス作成ツール
などのツールを用いて、暗号化されたパスワードを作成。

ID:hoge  PW:moge と入力して「作成」すると
「hoge:57C7Oa6QpdWk6」という文字列を作成してくれる。

 

パスワードファイルの作成

テキストエディタに、先ほどの ID と暗号化されたパスワード
hoge:57C7Oa6QpdWk6
を記述し
.htaccess で指定したファイル名で保存し
指定したディレクトリに配置する。

.htaccess | 2011-06-06 (月) 0:02:42 |

SEO -> URLの重複

Posted by muchag | .htaccess,さくらインターネット | 2010-06-03 (木) 0:57:15

[PHPプロ!] 重複するURLを防ぐことでSEO効果を上げるTips

こんなページを見つけて
お! なるほど と思った。

私のサイトはSEOなんてあんまり考えていないけど
.htaccess の知識は相当乏しいので
練習がてらやってみた。

1.ドメインリダイレクト

しかしながら、上記サイトにある
.htaccess での
http://example.com -> http://www.example.com
のリダイレクトは、さくらの私のサイトでは正常に動作しなかった。

  1. RewriteEngine on
  2. RewriteCond %{http_host} ^example.com[NC]
  3. RewriteRule (.*) http://www.example.com/$1 [L,R=301]

次にさくらのレンタルサーバ非公式FAQ内の設定例

  1. RewriteEngine on
  2. RewriteCond %{HTTP_HOST} example\.sakura\.ne\.jp [NC]
  3. RewriteRule .* http://www.example.com%{REQUEST_URI} [L,R=301]

これを

  1. RewriteEngine on
  2. RewriteCond %{HTTP_HOST} example\.com [NC]
  3. RewriteRule .* http://www.example.com%{REQUEST_URI} [L,R=301]

としてみたが、これも

ページの自動転送設定が正しくありません
このアドレスへのリクエストに対するサーバの自動転送設定がループしています。
・Cookie を無効化したり拒否していることにより、この問題が発生している可能性もあります。

FireFox 3.5.9 では以上のメッセージによりエラー。
IE 7.0.5730.13 では読み込みが完了しなかった。

で、Web Techniques Pro の URLの書き換え Rewrite にある

  1. RewriteCond %{HTTP_HOST} ^(example\.com)(:80)? [NC]
  2. RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

としたら
http://example.com -> http://www.example.com
に成功した。

2.「/index.php」 と 「/」

  1. RewriteCond %{request_uri} ^/$
  2. RewriteCond %{request_method} GET [NC]
  3. RewriteRule ^/$ /index.php [L,R=301]

これは元々条件分岐で飛ばしてしまっているので
検証不能。
一応設定しておいた。

.htaccess,さくらインターネット | 2010-06-03 (木) 0:57:15 |