在 nginx 中更改 WordPress 根目录

在 nginx 中更改 WordPress 根目录

我有一个网站,地址是site.com,还有一个 WordPress site.com/blog。我想在 nginx 中更改 WordPress 根目录。

这是我的配置:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/www/html;
    index index.php index.html index.htm;

    server_name localhost;
    server_name site.com www.site.com;

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

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }

    location /blog/ {
        root /var/www/blog;
   }
}

我打开时出现以下错误site.com/blog

404 未找到

nginx/1.14.0(Ubuntu)

答案1

试试这个,它会解决你的问题

location /blog {
        root /var/www;
        index index.php index.html;
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/run/php/php7.2-fpm.sock;
                fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
                proxy_intercept_errors on;
                fastcgi_index index.php;
                fastcgi_intercept_errors on;
                include fastcgi_params;

        }

答案2

sudo mv /var/www/blog /var/www/html/blog

保持目录结构简单。除非有实际的技术原因,否则不要将内容移出定义的文档根目录,因为这会使配置 Web 服务器成为一场噩梦。

答案3

您需要添加try_files $uri $uri/ /index.php?q=$uri$args;到您的location /blog块中,以便 nginx 知道在该位置查找哪些文件。

相关内容