web-dev-qa-db-ja.com

ドメインアクセスとOne.comホスティング(面白いサブドメインの書き換え)

メイン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.comAワイルドカード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]

何か案は?

1
Bla Blaat

/event/から/へのシンボリックリンクは正しいことがわかりましたが、リンク書き換え部分を修正するためにRewriteBase /を指定する必要があることもわかりました。

0
Bla Blaat