由于重写

时间:2018-01-31 21:07:16

标签: regex wordpress nginx configuration

我试图让以下代码起作用:

location = /test-site/wp-login.php {
           allow  192.168.0.56;
           include         /etc/nginx/fastcgi_params;
           fastcgi_pass php;
                           fastcgi_index  index.php;
           fastcgi_param  SCRIPT_FILENAME  /var/www/test-site.com/html$fastcgi_script_name;
            deny all;
    }

问题是,由于Wordpress上的多站点配置,需要执行3次重写才能到达正确的子站点。即使有了重写,上面的块也不起作用,因为重写它会剥离/ test-site / part。

相反,它匹配它并使用此nginx配置:

    location = /wp-login.php {
            #allow  192.168.0.0/16;
            allow  192.168.0.56;
            include         /etc/nginx/fastcgi_params;
            fastcgi_pass php;
                            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/test-site.com/html$fastcgi_script_name;

            deny all;
    }

我已经成功地将重写更改为ignore / test-site /并保留它,但随后它将$ fastcgi_script_name变量更改为/var/www/site.com/html/test-site/ wp-login和/ test-site /目录不存在,因为它实际上是一个子网站。

如果我取出$ fastcgi_script_name变量并硬编码/var/www/site.com/html/wp-login.php代替它,它会让我进入该网站,但它没有设置变量返回到正确的值以查找图像或样式文件。

任何人都有这方面的经验吗?我基本上试图允许每个人在一个子网站上访问wp-login.php,但是在我的wordpress环境中阻止他们访问任何其他子网站。

0 个答案:

没有答案