私はこのようにサーバーを構成しようとしています。
domain.com/webmail (webmail app)
domain.com/app (node.js app)
domain.com/mailadmin (mail administration app)
domain.com/site (drupal website)
私のルートディレクトリは/var/www
次のディレクトリがあります。
/var/www/webmail
/var/www/app
/var/www/postfixadmin
/var/www/site
私はいくつかの構成を試しましたが、どれも機能しませんでした(一部は部分的に機能し、ホームページを表示したり、CSSスタイルなしですべてのページを表示したりしました)
乾杯
これに一日中2回過ごした後。私はついに完全に機能する解決策を見つけました:
location /
(すべてキャッチ)を変更して、サブディレクトリをフェッチしようとしないようにする必要がありますlocation /subfolder_name/
を作成する必要があります/drupal_subfolder/
の要求をキャッチし、Drupalルーター用に書き換える必要があります。だからここにコードがあります:
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri =404;
}
location /app/ {
// reverse proxy configuration of a node.js app
...
}
location /webmail/ {
}
location /mailadmin/ {
}
location @drupal_rewrite {
rewrite ^/site/(.*)$ /site/index.php?$1;
}
location /site/ {
try_files $uri @drupal_rewrite;
}
私の構成(上記)では、location /app/
ブロックとlocation /site/
ブロックのみにコンテンツがあります。
それが誰かを助けることを願っています。 :)
(私が使用したもの:ubuntu + nginx + drupal 8.2)