我在一个域中有两台服务器
我的目标是为我的博客提供一个无缝网址,其中包含服务器B的内容http://mywebsite.com/test23。
我的第一个重定向正在工作(位置/ test23)。我可以获取主页并获取其他页面,但是无法连接到WP管理员。我在mywebsite.com/test23/wp-login.php上收到404。
服务器Nginx conf文件
index index.php index.html index.htm;
server_name mywebsite.com;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_read_timeout 1000;
}
location /test23 {
rewrite ^/test23(.*) /$1 break;
proxy_pass http://blog.mywebsite.com/;
}
location /test23/wp-admin {
rewrite ^/test23/wp-admin(.*) /$1 break;
proxy_pass http://blog.mywebsite.com/wp-admin;
}
我想我需要管理wp-admin文件夹的排除?我有点迷失:D
答案 0 :(得分:0)
由于代理了“ / test23”路径,并且使用了重写规则来绑定使用该地址的任何内容,因此不需要第二个位置块。
尝试使用此:
location /test23 {
rewrite ^/test23(/.*)$ /$1 break;
proxy_pass http://blog.mywebsite.com/;
}
如果您尚未设置代理规则,则此块也可能类似于:
location /test23 {
rewrite ^/test23(/.*)$ /$1 break;
proxy_pass http://blog.mywebsite.com/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
}
您应该在重写的“ test23”之后使用反斜杠。在第一种情况下,它有效,因为请求中的/ test23之后没有任何内容。
在第二个请求中,由于位置块的位置很重要,因此混淆了。因此,它会被第一个规则重写,从而导致没有反斜杠的错误。