そのため、ホーム サーバー (Ubuntu 9.1) で SVN をセットアップしており、CodeIgniter アプリに加えられた変更をすぐに表示できるようにしたいと考えています。
したがって、私の作業コピーは /home/myname/environments/development/appname にあります。
Vhost は dev.appname.myname.ca でアクセスでき、構成は次のようになります。
DocumentRoot /home/myname/environments/development/
ServerName dev.myname.ca
ServerAlias dev.*.myname.ca
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.* [NC]
RewriteCond %{HTTP_HOST} ^dev.([^\.]+)\.myname\.ca
RewriteCond /home/myname/environments/development/%1/trunk/ -d
RewriteRule ^(.*) /%1/trunk/public/$1
したがって、dev.appname.myname.ca に移動すると、/home/myname/environments/development/appname/trunk/public がポイントされます。
これは CodeIgniter アプリなので、すべてのリクエストを public/ から public/index.php にリダイレクトする必要があるため、public/ の .htaccess ファイルは次のようになります。
RewriteEngine On
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ index.php/$1 [L]
この部分は .htaccess ファイルに含まれています。これは、実際の運用サイトではサーバー構成にアクセスできないため、オーバーライドする必要があるためです。
問題は、リダイレクトのループが発生し、最終的に 500 エラーが発生することです。
/var/log/apache2/error.log から:
redirected from r->uri = /appname/trunk/public/index.php/appname/trunk/public/index.php/appname/trunk/public/index.php/appname/trunk/public/index.php/appname/trunk/public/index.php/appname/trunk/public/index.php/appname/trunk/public/index.php/
リクエストを適切な public/ ディレクトリ (この場合は /home/myname/environments/development/appname/trunk/publc) にリダイレクトし、すべてのリクエストを public/ から public/index.php にリダイレクトするにはどうすればよいですか?
私はそれが長々とした質問であることを知っています-あなたの助けに感謝します. :)