私は .htaccess が苦手なので、あなたの助けが必要です。最近、ワイルドカード SSL 証明書を購入しましたが、http を https に変更しても正しく機能しません。このサイトは CakePHP 2.3 で構築されており、public_html
ディレクトリの構造は次のとおりです。
/app
/lib
/plugins
/Cake
/sub1.domain.com
- app
- lib
- plugins
- ...
/sub2.domain.com
- app
- lib
- plugins
- ...
私のホスティングがサブドメインを処理する方法です。フォルダーCake
は、すべてのサブドメインとメイン ドメインで共有される CakePHP コアです。
SSL をインストールすると、cPanel に*.domain.com -> /public_html
変更できないレコードが自動的に追加されました。
http を使用するとすべて正常に動作しますが、https はメイン ドメインのすべてのサブドメインをリダイレクトします。.htaccess は/public_html
次のようになります。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
# http|https www to non-www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^(.*)$ http%1://domain.com/$1 [R=301,L]
# redirect all subdomains
RewriteCond %{HTTP_HOST} !^domain\.(.*)$ [NC]
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ /%{HTTP_HOST}/$1 [NC,L,NS]
RewriteCond %{HTTP_HOST} ^domain\.(.*)$ [NC]
RewriteRule ^$ app/webroot/ [L]
RewriteCond %{HTTP_HOST} ^domain\.(.*)$ [NC]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
サブドメイン内のすべての .htaccess ファイルは、デフォルトの CakePHP ファイルであり、RewriteBase /
誰かが同様の状況にあり、どのように解決しましたか? 本当に私の知識の範囲外なので助けてください。
アップデート #4
/public_html/sub1.domain.com/.htaccess
は:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{HTTPS} =on
RewriteRule ^$ sub1.domain.com/app/webroot/ [L]
RewriteCond %{HTTPS} =on
RewriteRule (.*) sub1.domain.com/app/webroot/$1 [L]
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
すべて問題ないように見えます。https://sub1.domain.com のみが https://sub1.domain.com/sub1.domain.comにリダイレクトされ 、生成されたすべてのパスには /sub1.domain.com が含まれます
URL とリンクからフォルダー sub1.domain.com を削除するにはどうすればよいですか?
Configure::write('App.baseUrl', env('SCRIPT_NAME'));
他の何かを更新する必要がありますか?まだ修正しようとしている