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

Перезапись Nginx Wordpress для нескольких подпапок

В настоящее время я настраиваю наш новый сервер для нашей компании, и мы разрабатываем множество различных приложений, и прямо сейчас мы хотим, чтобы все наши приложения wordpress располагались под wp.domain.com/app1, wp.domain.com/app2 и т. Д. .

Причина, по которой значение по умолчанию не работает, заключается в том, что мы хотим использовать постоянную ссылку% postname% для всех приложений.

В настоящее время я переписываю каждую подпапку, но я бы предпочел переписать каждую подпапку одним location block, поэтому мне не нужно редактировать серверный блок каждый раз, когда мы загружаем новое приложение на наш сервер.

Также существует возможность загрузки в подкаталог, например wp.domain.com/appgroup1/app3, wp.domain.com/appgroup1/app6 и т. Д.

Вот моя конфигурация wp.domain.com:

server {
  listen 80;

  root /usr/share/nginx/html/wp;
  index index.php index.html index.htm;
  server_name wp.domain.com;

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

  location ~ /(.*)/ {
    index index.php;
    try_files $uri $uri/ /$1/index.php?$args;
  }

  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  #
  location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

    # With php5-cgi alone:
    #fastcgi_pass 127.0.0.1:9000;
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
  }

  # deny access to .htaccess files, if Apache's document root
  # concurs with nginx's one

  location ~ /\.ht {
    deny all;
  }
}

Обратите внимание, что у нас нет настройки для нескольких сайтов.

Пришло время использовать блоки расположения регулярных выражений:

location ~ /(app1|app2|app3|groupapp1(?:/(subapp1|subapp2|subapp3)))/ { 
    try_files $uri $uri/ /$1/index.php$is_args$args;
    [ ... ]
}

Насколько я понимаю, вы можете просто оставить index.php во всем блоке сервера {} и удалить все / app / location. В index.php ничего переписывать не нужно.