Назад | Перейти на главную страницу

Веб-сайт как дочерний элемент другого веб-сайта?

Я пытаюсь настроить веб-сайт в качестве вспомогательного местоположения другого веб-сайта. Для большего контекста у меня есть wp1 и wp2, оба сайта wordpress, а wp2 должен быть дополнительным местоположением wp1, например http://wp1.com/wp2 но я не могу найти способ сделать это, я прочитал доступную документацию, но все еще не могу понять, почему это на самом деле не работает.

Мой файл конфигурации nginx:

server {
listen 80;
listen [::]:80 ;

server_name 1.2.3.4; #(IP)

root /var/www/html/wp1;
index index.php;

client_max_body_size 200M;

satisfy any;
allow 1.2.3.4;
deny all;

auth_basic "Restricted";                    #For Basic Auth
auth_basic_user_file /etc/nginx/.htpasswd;  #For Basic Auth

location /wp2 {
    root /var/www/html/wp2;
    index index.php;
    try_files $uri $uri/ /index.php?$args;

    location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME 
                $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

}

location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ /index.php?$args;
    }

location ~ \.php$ {
           try_files $uri =404;
           fastcgi_split_path_info ^(.+\.php)(/.+)$;
           fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
           fastcgi_index index.php;
           fastcgi_param SCRIPT_FILENAME 
           $document_root$fastcgi_script_name;
           include fastcgi_params;
    }
}

Похоже, твой location и root утверждения неверны.

В location ~ \.php$ блок в server контекст будет иметь приоритет над location /wp2 блок. Использовать ^~ модификатор. Видеть этот документ для подробностей.

Я предполагаю, что ваши файлы находятся в /var/www/html/wp2/index.php, и нет /var/www/html/wp2/wp2/index.php. Видеть этот документ для подробностей.

Например:

location ^~ /wp2 {
    root /var/www/html;
    ...
}