メインWebサイトexample.com
とミニサイトevent.example.com
を区別するためにドメインアクセスを使用するD7インストールがあります。それらは同じドキュメントルート/ Drupalインストールと同じデータベースを共有しています。ドメインパスを使用してサブドメイン固有のエイリアスを設定しています。
このWebサイトをOne.comのWebスペースに移動することを決定するまで、これはうまくいきました。ドキュメントルートにディレクトリを作成するだけでサブドメインを作成できるのであれば、彼らはこれを行います。したがって、/folder/
には次の3つの方法で自動的にアクセスできます。
http://folder.example.com/
http://example.com/folder/
http://www.example.com/folder/
デフォルトでは、*.example.com
のA
ワイルドカードDNSレコードがあります。
私の/.htaccess
の関連部分は現在、次のようになっています。
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
#strip www.
RewriteCond %{HTTP_Host} ^www\.(.+)$ [NC]
RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]
#pass all requests that do not refer to files to index.php
RewriteCond %{HTTP_Host} ^(event\.)?example\.com [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
</IfModule>
これにより、event.example.com
上のすべての静的ファイルが破損します。 http://event.example.com/sites/default/files/css/css_*.css
にアクセスすると、Apacheは/event/
ディレクトリを見つけようとしますが、このディレクトリは存在せず、404を返します。
/event/
を/
にシンボリックリンクして、これを修正しようとしました。これで静的ファイルは機能しますが、event.example.com
のドメインパスは機能しなくなり(すべてに404が指定されます)、リンクはhttp://event.example.com/event/somelink
に書き換えられる傾向があります。
私はまた、以下を追加してこれを修正しようとしましたが、それは助けにはなりませんでした。
RewriteCond %{REQUEST_URI} ^/event(.*)$ [NC]
RewriteRule ^ http%{ENV:protossl}://event.example.com%1 [L,R=301]
何か案は?
/event/
から/
へのシンボリックリンクは正しいことがわかりましたが、リンク書き換え部分を修正するためにRewriteBase /
を指定する必要があることもわかりました。