.ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録

.検索

.メインメニュー

.フォーラムメニュー

.オンライン状況
20 人のユーザが現在オンラインです。 (20 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 20

もっと...

.
.リンク集

メイン
   インストール・セットアップ(Install,Setup)
     RewriteRuleによるマルチドメイン環境化での動作
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
hirosyg
投稿日時: 2010-3-4 6:28
Baker スタート
登録日: 2008-10-6
居住地:
投稿: 4
RewriteRuleによるマルチドメイン環境化での動作
WebARENAが提供するSuiteXプランのサーバーで運用しています。

このサーバーではマルチドメインを実現する際に
.htaccessの RewriteRuleを用いるのですが、
この環境下での設定方法がうまくいきません。

本来のURL → http://oyadomein.com/hoge.jp/cakephp/
Rewrite設定 → http://hoge.jp/cakephp/

「本来のURL」でアクセスすると動くのですが、
「Rewrite設定」のほうでは下記のエラーが出てしまいます。


Notice (8): Undefined property:  AppController::$Problem [APP/app_controller.php, line 54]


hoge.jpの.htaccessは下記のようになっています。


RewriteCond %{HTTP_HOST} ^(hoge.jp)
RewriteCond %{REQUEST_URI} !^/(hoge.jp)/
RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L]


cakephpの.htaccessは下記のようになっています。


php_value memory_limit 10M
RewriteEngine On
RewriteBase http://hoge.jp/cakephp/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule    ^$ app/webroot/    [L]
RewriteRule    (.*) app/webroot/$1 [L]


cakephpのindex.phpのROOT設定は下記のようになっています。


define('ROOT', DS.'virtual'.DS.'IPアドレス'.DS.'home'.DS.'hoge.jp'.DS.'cakephp');



どのように設定したらよいでしょうか?
ohguma
投稿日時: 2010-3-4 10:38
Baker 常連
登録日: 2006-10-23
居住地:
投稿: 66
Re: RewriteRuleによるマルチドメイン環境化での動作
具体的な解決策ではありませんが、SuiteXならば、APP/webroot以外のファイル類を /home配下に置かず、/data配下に持って行くことで、問題点を整理し易くなると思います。

APP/webroot/の中身はそのまま /home/hoge.jp/cakephp/ に置き、index.phpのROOT設定を /data を見るように変えてはどうでしょうか。

▼オンラインマニュアル>ファイル転送〜ディレクトリ構造
http://web.arena.ne.jp/suitex/support/manual/ftp/directory.html
hirosyg
投稿日時: 2010-3-5 3:41
Baker スタート
登録日: 2008-10-6
居住地:
投稿: 4
Re: RewriteRuleによるマルチドメイン環境化での動作
>ohguma様

アドバイスありがとうございます。
さっそくwebroot以外をdataディレクトリに移動させ動作するようにしました。

結果としては下記のようになり、親ドメイン越しでないと
アクセスができないというのは変化ありませんでした。

http://hoge.jp/cakephp/
ヘッダなどは表示されるがコンテンツ部がNotFoundに。

http://oyadomain.com/hoge.jp/cakephp/
正常に表示される。

cakephpディレクトリ(元webroot)のhtaccessは下記のようになっています。


php_value memory_limit 10M
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteBase /cakephp/
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>


テンプレート(ctpファイル)内の $this->webroot は
http://oyadomain.com/hoge.jp/cakephp/
になるのでこのへんにヒントがあるように思えるのですが
答えを見付けるには至りませんでした。

試しに下記のようにしてみたら Internal Server Error になりました。
http://oyadomain.com/hoge.jp/cakephp/ にしてもエラーになったので
これは単にRewriteBaseの記法に合ってないだけだと思いますが。


    RewriteBase http://hoge.jp/cakephp/


hiromi2424
投稿日時: 2010-3-5 6:12
Baker 常連
登録日: 2009-11-23
居住地: 新潟
投稿: 58
Re: RewriteRuleによるマルチドメイン環境化での動作
config/core.phpに以下の記述をしてみてください。
Configure::write('App.baseUrl','http://hoge.jp/cakephp');
Configure::write('App.base', '/cakephp');

これで解決しなかったら、WEBサーバー側に何か問題があると思われるので問い合わせてください。

#ローカルサーバーでVirtual Hostの設定、hostsファイルの設定で状況を再現すれば、デバッグが容易になります。
#困ったときはvar_dump($_SERVER)とvar_dump(get_object_vars($this))を用いれば、どこらへんに問題があるか特定しやすくなります。書き込みの際は貼り付けて貰えると指摘しやすくなります。


----------------
単純な質問はCakeQsも使ってあげてください。
twitter
Blog

hirosyg
投稿日時: 2010-3-12 13:02
Baker スタート
登録日: 2008-10-6
居住地:
投稿: 4
Re: RewriteRuleによるマルチドメイン環境化での動作
反応が遅くなりまして申し訳ありません。

>hiromi2424 様

教えていただいた方法で無事動かすことができました!
ありがとうございます!

また、var_dump()についてもご指摘いただきありがとうございます。
今後の参考にさせていただきたいと思います。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 


. .