Nginx 静态网站与 wordpress 博客路由

Nginx 静态网站与 wordpress 博客路由

我的 nginx 配置有问题,花了几个小时尝试不同的解决方案后,仍然无法使其工作。

我有一个根文件夹/var/www/x,里面放着我的静态网站,可以说它只有一个文件hello.html。在那个根文件夹中,我还有一个/blog文件夹,里面安装了 Wordpress。

我想要实现的是,首先检查根文件夹中是否存在 html 文件,如果未找到,则转到 wordpress。对于 wordpress 或静态网站,Url 不能不同。

示例: x.com/hello将返回在根目录中找到的 hello.html 文件。 x.com/test将转到/blog文件夹并提供给 Wordpress 控制器。

我最新的解决方案是这样的,但我真的不明白为什么它不起作用:

server {

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

        server_name x.com;

        location / {
                try_files $uri /blog/$uri =404;
        }

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

    location ~ /\.ht {
        deny all;
    }


    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/x.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/x.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
    if ($host = x.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


        listen 80;
        listen [::]:80;

        server_name x.com;
        return 404; # managed by Certbot


}

相关内容