web-dev-qa-db-ja.com

サブドメインでブログを作成する

これを理解するのに助けが必要です。 Drupal 7.にメインサイトmysite.comがあります。7.ブログを作成し、blog.mysite.comを使用してアクセスできるようにしたいので、基本的には同じです。サイト(同じ場所からコンテンツを管理できるため)、異なるURLのみ。

注*:個々の投稿ページには、次のようなURLが表示されます:blog.mysite.com/my-post

パス名mysite.com/blogの下にViewを使用し、URLをマスクしてblog.mysite.comを代わりに表示できるかどうか疑問に思いました。 Webサーバーとしてnginxを使用しています。

3
Dragos Damian

これを正しく行うには Domain Access モジュールを使用する必要があるようです。このモジュールを使用すると、1つのDrupalインストールから、同じデータベースを共有して、必要な数のアフィリエイトサイトを実行できます。

現在、別のサイトで使用していますが、非常にうまく機能しています。

3
Alex Kirsten

まず、両方のドメインがサイトを指すようにする必要がありますが、これはHTTPサーバーの構成の問題であり、すでに理解していると思います。

これには2つの部分があり、適切なコンテンツを提供し、適切なリンクを表示します。

適切なコンテンツを提供する

Drupalだけではありません。サブドメインが呼び出されたときに「サブディレクトリ」のコンテンツを提供するには、htaccessの先頭に次のようなものを配置する必要があります。

_RewriteEngine on
RewriteCond %{HTTP_Host} ^blog.example.com [NC]
RewriteRule ^/(.*)$ /blog/$1 [L]
_

Nginxを使用すると、次のようになります(注:私の個人的な経験ではなく、 here から取得):

_server {
  listen 80;
  server_name blog.example.com;
  location / {
    proxy_pass http://127.0.0.1/blog$request_uri;
    proxy_set_header Host example.com;
  }
}
_

_hook_url_inbound_alter_ を使用することもできますが、適切なWebサーバー構成よりも遅くなる可能性があります。 DrupalとにかくWebサーバーのURL書き換えを使用します。

URLの書き換え

一般的な方法は hook_url_outbound_alter() を使用することです。フックのスローダウンを望まない場合は、次のことができます。

  • Viewsによって生成されたノードへのURLリンクは簡単に修正できます-「フィールドの書き換え」オプションを使用して、必要なリンクを手動で作成できます
  • テーマ要素や他のファイルへのリンクは少し難しいです-基本的に、上記の書き換えルールで例外を作成する必要があり、すべてが静的ファイルですまたはディレクトリは書き換えを省略します。これを行う方法の例は、静的ファイルがindex.php経由で処理されないのと同じ条件であるため、元の構成にあります。
  • ノード内のリンク-このセクションは、さらなる研究を待ちます
3
Mołot