2011-10-27 14 views
1

私は、サブディレクトリを使ってdrupalでマルチサイト環境を設定しようとしています。ここには非常に良い指示があります:http://www.drupalcoder.com/blog/drupal-multisite-in-subfoldersですが、それはApache固有のもので、Nginxを使って作業しています。nupinのサブディレクトリを使ったdrupalのマルチサイト環境

は、どのように私はnginxの中でこれらの2つのことをしますか:

すると我々は3つのサブディレクトリに対する要求が行きたい

Apacheの設定ファイルエイリアスを追加します。

は、上記のリンクから引用します同じDrupal インスタンスに変更します。 Apacheの別名機能を使用してこれを行うことができます。

Alias /subdir1 /var/www 
Alias /subdir2 /var/www 
Alias /subdir3 /var/www 

私はDrupalののコードベースは、あなたの マシン上の/ var/WWWでホストされ、ここで想定しています。我々は に持って1つのコードベースからのすべての要求index.phpにすべての要求をリダイレクトするサービスを提供していることを今

をindex.phpにすべての要求をリダイレクト

。これは、すべて のindexupdという1つのエンドポイントからDrupalリクエストが配信されるために行う必要があります。これは動作するはず

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^/subdir1/(.*)$ 
RewriteRule ^(.*)$ /subdir1/index.php?q=$1 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^/subdir2/(.*)$ 
RewriteRule ^(.*)$ /subdir2/index.php?q=$1 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^/subdir3/(.*)$ 
RewriteRule ^(.*)$ /subdir3/index.php?q=$1 [L,QSA] 
+0

以下の両方の解決方法を試しましたが、どれも私のために働いていませんでした。私は同じ問題で苦労しているよ! –

答えて

0

エイリアス(チェックしませんでした):書き換え&のfastcgi-phpのため

location ~ ^/subdir\d+/(.*)$ { 
    alias /var/www; 
} 

と、このような何かを:

location/{ 
    root /var/www; 
    index index.php index.html; 

    if (!-f $request_filename) { 
     rewrite ^(.*)$ /index.php?q=$1 last; 
     break; 
    } 

    if (!-d $request_filename) { 
     rewrite ^(.*)$ /index.php?q=$1 last; 
     break; 
    } 
} 

location ~ .php$ { 
    fastcgi_pass 127.0.0.1:9000; 
    fastcgi_index index.php; 

    fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; 
    fastcgi_param QUERY_STRING  $query_string; 
    fastcgi_param REQUEST_METHOD $request_method; 
    fastcgi_param CONTENT_TYPE  $content_type; 
    fastcgi_param CONTENT_LENGTH $content_length; 
} 
0

私はマップを使用します/ subdirの後ろのすべてをhttpレベルの変数として取得します。次に、位置依存性を導入する正規表現の場所を避けることができます。

map $uri $params { 
    ~^/[^/]+/(?<subpath>.*) $subpath; 
} 

server { 
    root /var/www; 

    location /subdir1/ { 
     try_files $uri $uri/ /subdir1/index.php?q=$params 
    } 

    location /subdir2/ { 
     try_files $uri $uri/ /subdir2/index.php?q=$params 
    } 

    location /subdir3/ { 
     try_files $uri $uri/ /subdir3/index.php?q=$params 
    } 
} 
関連する問題