1

私は .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'));他の何かを更新する必要がありますか?まだ修正しようとしている

4

1 に答える 1