致力于访问位于我主网站根目录下的子目录中的 wordpress 安装程序。
我的主要网站存储在/var/www/example.com/htdocs
我的 wordpress 安装存储在/var/www/wordpress.example.com/wordpress
我希望能够从以下位置访问我的 WordPress 安装example.com/blog
server {
...
root /var/www/example.com/htdocs;
...
location ^~ /blog {
root /var/www/wordpress.example.com/wordpress;
}
}
但是,我得到了 404,其中/blog
也添加到了根目录(这不是我想要的)。
未找到“/var/www/wordpress.example.com/wordpress/blog/index.php”
注意根目录如何显示/wordpress
和/blog
。我希望它只显示/wordpress
。我希望它可以从访问/blog
,但/blog
不应成为根目录的一部分,因为它不存在。
你能帮我解决这个问题吗?
答案1
@Drifter104 的答案是正确的,我只是想添加一个解释。你错误地使用了指令,你应该使用别名指令而不是 root。如果你使用的是 root,requested_uri(location 值)将添加到文件路径中。在你的情况下,如果 request_uri(location 值)/blog,nginx 将在 中搜索文件路径/var/www/wordpress.example.com/wordpress+/blog
。但是如果你使用别名,nginx 将搜索的文件路径不是基于位置值的。这是 nginx 文档http://nginx.org/en/docs/http/ngx_http_core_module.html#alias。