XoopsCubeLegacy2.1.8とCAKEPHP1.3.3とSSLな組み合わせ
環境
- レンタルサーバー:CPI
- CNS:XoopsCubeLegacy2.1.8
- モジュール:CAKEPHP1.3.3で作成
- SSL:CPIの無料の共用SSL
俺の環境は通常だと
http://うちのドメイン/XOOPS/modules/CAKEPHPで作ったモジュール/コントローラ/メソッド
SSLだと
https://zXXX.secure.ne.jp/~zうちのアカウント/XOOPS/modules/CAKEPHPで作ったモジュール/コントローラ/メソッド
まず、XOOPSのmainfile.phpの変更
XOOPS_URLを書き換える
//define('XOOPS_URL', 'http://うちのドメイン/XOOPS');
if (strcasecmp(@$_SERVER['HTTPS'],'on')===0){
define('XOOPS_URL', 'https://zXXX.secure.ne.jp/~zうちのアカウント/XOOPS');
} else {
define('XOOPS_URL', 'http://うちのドメイン/XOOPS');
}
↑
嘘でした。。。
mainfile.phpの変更は必要なし。
次はCAKEPHPで作ったモジュール。
SSLだとhttps://zXXX.secure.ne.jp/~zうちのアカウント/XOOPS/modules/CAKEPHPで作ったモジュール/以下が見れない
CAKEPHPのトップページのみだけ。
作ったコントローラとメソッドも見れるようにするために
CAKEPHPで作ったモジュールのフォルダの直下の.htaccessの変更
こう変更した↓
<IfModule mod_rewrite.c>
RewriteEngine On
Options FollowSymLinks
RewriteCond %{HTTP_HOST} ^うちのドメイン$ → ドメイン名でアクセスされた場合
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
RewriteCond %{HTTP_HOST} ^zXXX.secure.ne.jp$ → 共用SSLのアドレスでアクセスされた場合
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ https://zXXX.secure.ne.jp/~zうちのアカウント/XOOPS/modules/CAKEPHP/index.php?url=$1 [QSA,L]
</IfModule>