Я использую Drupal 8 с настройкой нескольких сайтов, расположенной в каталоге "/ var / www / html / drupal", и я использую NGINX в качестве веб-сервера.
У меня есть следующиедоменные имена:
- qa.example.com
- qa.example.com / v1
- qa.example.com / v2
Где "qa.example.com" - основной домен, обслуживающий статический файл (index.html с некоторой информацией в нем).А v1 и v2 являются динамическими сайтами, созданными с использованием Drupal 8. Multi-site.
Поскольку на qa.example.com есть только 1 статический файл, я поместил его в каталог ядра Drupal и указал виртуальный хост на "/ var/ www / html / drupal "каталог.В соответствии с документацией, приведенной в examples.sites.php, я добавил запись сайтов в sites.php, как показано ниже:
<?php
$sites['qa.example.com.v1'] = 'v1.example.com';
$sites['qa.example.com.v2'] = 'v2.example.com';
При доступе к «qa.example.com» он работает нормально, так как у него только одинФайл index.html, но при доступе к «qa.example.com/v1» меня перенаправляют на «qa.example.com/core/install.php» или получают страницу «404 Not Found» nginx.Я не понимаю, чего мне не хватает.
Ниже приводится конфигурация NGINX, которую я использую:
server {
server_name qa.example.com;
listen 80;
listen [::]:80;
index index.php index.html;
location / {
root /var/www/html/drupal;
try_files $uri /index.php?$query_string;
}
location /v1 {
root /var/www/html/drupal;
# try_files $uri $uri/ /var/www/html/drupal/index.php?$query_string;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ \..*/.*\.php$ {
return 403;
}
location ~ ^/sites/.*/private/ {
return 403;
}
location ~ (^|/)\. {
return 403;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?q=$1;
}
location ~ '\.php$|^/update.php' {
fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
include fastcgi_params;
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_intercept_errors on;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ ^/sites/.*/files/styles/ {
try_files $uri @rewrite;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
Ниже приведена структура каталогов, которую я имею:
// main directory
/var/www/html/drupal
// my static file for landing domain name
/var/www/html/drupal/index.html
// drupal core files
/var/www/html/drupal/core
// drupal's index.php file
/var/www/html/drupal/index.php
// contrib and custom modules
/var/www/html/drupal/modules
// Site v1 directory as per Drupal's multi-site directory structure.
/var/www/html/drupal/sites/v1
// Site v2 directory as per Drupal's multi-site directory structure.
/var/www/html/drupal/sites/v2
Я просмотрел много ссылок в Интернете, но ничего не работает.
ПРИМЕЧАНИЕ: v1 и v2 не являются действительными каталогами "/ var / www /html / drupal ".
Ниже приведены ссылки, на которые я ссылался:
- nginx проектов в подпапках
- расположение Nginxконфигурация (подпапки)
- Мультисайт с двумя сайтами, использующими один и тот же домен?
- Приложения PHP в подкаталоге в Nginx