WordPress в SubDirectory с Nginx

Независимо от того, что я, кажется, делаю, мой сайт WordPress работает отлично, включая все постоянные ссылки, но я не могу получить доступ к wp-администраторской области. Каждый раз, когда я пытаюсь сделать так, я получаю 404 ошибки. Мне установили WordPress в свой собственный каталог, просто названный "Wordpress". Вот мой конфигурационный файл:

    server {
    listen 443 ssl;
    server_name my-domain.com;
    root /home/wp-user/my-domain.com/public;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    index index.html index.htm index.php;

    charset utf-8;

    # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
    # Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban)
    location ~ /\. {
        deny all;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log off;
    error_log  /var/log/nginx/my-domain.com-error.log error;

    # Deny access to any files with a .php extension in the uploads directory
    # Works in sub-directory installs and also in multisite network
    # Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban)
    location ~* /(?:uploads|files)/.*\.php$ {
        deny all;
    }

    # WordPress single blog rules.
    # Designed to be included in any server {} block.

    # This order might seem weird - this is attempted to match last if rules below fail.
    # http://wiki.nginx.org/HttpCoreModule
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }


    # Directives to send expires headers and turn off 404 error logging.
    location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
        access_log off; log_not_found off; expires max;
    }

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

    location ~ \.php$ {
        try_files $uri /wordpress/index.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:
        proxy_intercept_errors on;
        error_page 502 = @fallback;

        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root;
        include fastcgi_params;
    }

    location @fallback  {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}
1
задан 25 May 2015 в 22:08
1 ответ

wp-admin - это отдельная страница от index.php, поэтому ваша директива location никогда не будет иметь к ней доступа. По сути, вы устанавливаете ваше местоположение как /WordPress и встраиваете в него ваше .php местоположение. Я на планшете, так что добавлю фрагмент примера кода, когда снова окажусь на рабочем столе/ноутбуке.

.
1
ответ дан 4 December 2019 в 00:07

Теги

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