Подкаталог Nginx Wordpress — скрытие папок подкаталога

Я пытаюсь обслуживать блог WordPress из своего приложения laravel, однако фактическая сборка WordPress вложена на несколько уровней вглубь корня сайта, и мне нужно исключить определенные папки из URI.

В частности, сборка WordPress находится в root_folder/wordpress/wp_build, которую необходимо обслуживать через example.com/blog.

Моя текущая попытка настройки Nginx позволяет мне получить доступ к сайту WordPress по адресу example.com/blog, однако я не могу получить доступ к панели управления WP или даже к странице входа в сборку.

Вот соответствующая часть моей конфигурации nginx

server_name example.com;
root /home/user/laravel_app/public;
index index.php index.html index.htm;

location / {
    autoindex off;
    try_files $uri $uri/ /index.php?$query_string;
}

location ~ ^/blog {
    root /home/user/laravel_app/public/wordpress/wordpress_build;
    try_files $uri $uri/ /wordpress/wordpress_build/index.php?args;
}

#### PHP Setup ####
location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

Дополнительные детали

  • URL example.com/blog/wp-admin неправильно перенаправляет на `example.com/blog/wp-admin/
  • Нажатие на посты работает как надо

  • Оба WP_HOME и WP_SITEURL в настоящее время установлены на example.com/wordpress/wordpress_build. Установка значения example.com/blog, похоже, полностью нарушает функциональность WordPress.


person James    schedule 15.02.2017    source источник
comment
Попробуйте это решение, используя alias с вложенным местоположением PHP.   -  person Richard Smith    schedule 15.02.2017
comment
@RichardSmith Работает отлично - я не могу отблагодарить вас! Когда я пытался использовать псевдоним ранее, я начинал с общедоступного корня (не включая /home/user). Ты святой   -  person James    schedule 15.02.2017