Изменение URL-адреса блога Wordpress Multisite с использованием Nginx - proxy_pass? Местоположение с ошибкой регулярного выражения

Я установил экземпляр Wordpress Multisite (также известный как WPMU) на AWS для обслуживания четырех своих блогов, которые в настоящее время устанавливаются на одном сайте . Три блога работают в корневом домене, но один должен обслуживаться из / blog /, поскольку у меня есть собственный письменный веб-сайт в корне. Я не могу заставить WPMU обслуживать блог из подкаталога из-за ограничений программного обеспечения, хотя Wordpress на одном сайте может это сделать, поэтому я хотел бы посмотреть, смогу ли я сделать это с помощью Nginx.

Мой запасной вариант - установка Wordpress на одном сайте, чего я бы предпочел избежать, поскольку она увеличивает накладные расходы на обслуживание и резервное копирование. Другой выход - размещение блога на субдомене, что не так хорошо для SEO, поэтому я бы тоже предпочел избежать этого.

I ' ve очень открыты для альтернативных решений, которые помещают блог в подкаталог с запущенным WPMU

Он должен выглядеть так для зрителя

example.com  <- Viewer sees custom PHP application
example.com/blog/  <- Viewer sees WPMU blog
blog.example.com   <- hidden from viewers

Я думаю, что это может быть настроено так

example.com <- Runs custom PHP written application
blog.example.com   <- WPMU runs on a subdomain, mapped to a subfolder of the main domain by Nginx

I думаю, что можно переписать что-то для работы с Wordpress Multisite с помощью Nginx, но я не могу с этим справиться. proxy_pass отлично работал для статического сайта (не могу опубликовать конфигурацию, моя репутация недостаточна для публикации такого количества ссылок), но я столкнулся с ошибкой

"proxy_pass" не может иметь часть URI в местоположении, указанном обычным выражение "(etc)

Я видел, как люди проделывали хитрые вещи с перезаписью в nginx, что убедило его работать, но я не могу понять это правильно. Может ли кто-нибудь помочь с этим?

I ' Мы разместили несколько соответствующих блоков местоположения ниже, которые работают в моей текущей конфигурации ниже - конечно, все статические ресурсы js / css / jpeg / etc должны быть перенаправлены, поскольку WPMU все равно будет генерировать html, который ссылается на поддомен

# We want all resources in the wp-content/uploads/20x and uploads/galleries   
# folders to redirect to wp-content/uploads/sites/$blogid/whatever
location ~* "wp-content\/uploads\/((\d{4,}\/\d{2,}|galleries).*)" {
  alias    /var/www/wordpress/wp-content/uploads/sites/$blogid/$1;
  return 301 $scheme://$host/wp-content/uploads/sites/$blogid/$1;
}

# Set caching headers for images
location ~*  \.(jpg|jpeg|png|gif|css|js)$ {
  log_not_found off; access_log off;
  add_header Cache-Control "public";
  expires 4h;
}

# Send HipHop and PHP requests to HHVM
location ~ \.(hh|php)$ {
  fastcgi_keep_conn on;
  fastcgi_intercept_errors on;
  fastcgi_pass   php;
  include        fastcgi_params;
  fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

Если это был простой блок без регулярного выражения, как в моем статическом тесте, что-то вроде этого, вероятно, сработает

# Send HipHop and PHP requests to HHVM
location ~ \.(hh|php)$ {
  proxy_pass http://example.com
  fastcgi_keep_conn on;
  fastcgi_intercept_errors on;
  fastcgi_pass   php;
  include        fastcgi_params;
  fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
0
задан 6 January 2016 в 00:00
1 ответ

Вот пошаговое руководство, как это сделать:

https://yuji.wordpress.com/2010/03/08/nginx-wordpress-proxy-subdirectory -to-wordpress-subdomain /

В конце концов, автор этого не советует. Я бы пошел по-другому, чтобы, возможно, избежать некоторых из его неудачных опытов, - это переписать URL. Это можно сделать с помощью субмодуля nginx string вместо Wordpress:

http://nginx.org/en/docs/http/ngx_http_sub_module.html

В этих ссылках есть дальнейшие объяснения по проксированию и перезаписи:

https://stackoverflow.com/questions/9233368/nginx-server-configuration-subdomain-to-folder

И не забудьте косую черту в конце:

Обратный прокси - удалить подкаталог

0
ответ дан 5 December 2019 в 11:07

Теги

Похожие вопросы