2015-03-18 3 views
4

Я пытаюсь настроить WordPress Multisite с подкаталогами за nginx.WordPress Multisite directory nginx config

Первоначально мой WordPress размещался по адресу https://example.com/wordpress, и теперь я перемещаю его в Multisite.

wp-config.php кажется прекрасным:

define('WP_DEBUG', false); 
define('WP_ALLOW_MULTISITE', true); 

define('MULTISITE', true); 
define('SUBDOMAIN_INSTALL', false); 
define('DOMAIN_CURRENT_SITE', 'example.com'); 
define('PATH_CURRENT_SITE', '/wordpress/'); 
define('SITE_ID_CURRENT_SITE', 1); 
define('BLOG_ID_CURRENT_SITE', 1); ` 

Мои nginx.conf является:

server { 
    listen 80; 
    server_name example.com; 

    root /var/www/; # wordpress is at /var/www/wordpress, All wp files are in this wordpress folder 
    index index.php; 

    access_log /var/log/nginx/access.log main; 
    error_log /var/log/nginx/error.log; 

    recursive_error_pages on; 

    location/{ 
     try_files $uri $uri/ /wordpress/index.php?q=$uri&$args; 
    } 

    # Add trailing slash to */wp-admin requests. 
    rewrite /wp-admin$ $scheme://$host$uri/ permanent; 

    # Pass uploaded files to wp-includes/ms-files.php. 
    rewrite /files/$ /wordpress/index.php last; 

    if ($uri !~ wp-content/plugins) { 
     rewrite /files/(.+)$ /wordpress/wp-includes/ms-files.php?file=$1 last; 
    } 

    # Rewrite multisite '.../wp-.*' and '.../*.php'. 
    if (!-e $request_filename) { 
     rewrite_log on; 
     rewrite ^/(/[^/]+)?(/wp-.*) wordpress/$2 last; 
     rewrite ^/(/[^/]+)?(/.*\.php) wordpress/$2 last; 

     # rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last; 
     # rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last; 
    } 

    location ~* /(?:uploads|files)/.*\.php$ { 
     deny all; 
    } 

    location ~ \.php$ { 
     set $skip_cache 0; 
     include fastcgi_params; 
     fastcgi_pass 127.0.0.1:9000; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     fastcgi_index index.php; 

     if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") { 
      set $skip_cache 1; 
     } 

     fastcgi_cache_bypass $skip_cache; 
     fastcgi_no_cache $skip_cache; 
     fastcgi_cache microcache; 
     fastcgi_cache_valid 200 5m; 
    } 
} 

создать сайт теперь называется "site2": https://example.com/wordpress/site2

Но этот сайт не загружает страницы должным образом. Когда я осматриваю https://example.com/wordpress/site2/wp-admin/ я получаю ошибку:

This webpage has a redirect loop.

Непосредственная помощь будет действительно оценили.

ответ

3

нормально, если вы хотите, чтобы ваши сайты, чтобы работать как

https://example.com/site1

https://example.com/site2

вот что вы можете сделать,

перейти к сети настройки> сайты изменить адрес site2 from/wordpress/site2 to/site2

Также вам нужно исправить, nginx config as follo WS

# rewrite ^/(/[^/]+)?(/wp-.*) wordpress/$2 last; 
# rewrite ^/(/[^/]+)?(/.*\.php) wordpress/$2 last; 

rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) /wordpress$1 last; 
rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ /wordpress$1 last; 

То есть вы должны использовать свой раскомментируйте код, с некоторыми исправить

+1

Большое спасибо @ rohitshere1. Это сработало !! – Somesh

Смежные вопросы