nginx wordpress重写规则与stub_status模块冲突

nginx wordpress重写规则与stub_status模块冲突

当我尝试在基于 wordpress 的网站上启用 stub_status 模块时遇到了问题。以下是我在 nginx.conf 中的配置。

location /status {
stub_status on;
access_log off;
}
if (!-e $request_filename){
rewrite ^(.+)$ /index.php?q=$1 last;
} 

我的问题是,如果我删除 wordpress 重写规则,我可以访问状态页面。如果重写规则存在,状态页面将不起作用。有人知道如何解决这个问题吗?

答案1

实际上,您的重写属于server部分,因此没有机会location /status。因此,您只需要将重写条件放入其他location。PS 我不确定这是有效的配置,但我认为,这个想法已经传达了。

server {
  listen 80;
  server_name myserver.com;

  location /status {
    stub_status on;
    access_log off;
  }

  location ~* \.(ico|jpe?g|gif|bmp|png|js|css)$ {
    access_log off;
    expires max;
  }

  location ~* (!\.(ico|jpg|jpeg|gif|bmp|png|css|js))$ {
    if (!-e $request_filename) {
      rewrite ^/$ /index.php last;
    }
  }
}

相关内容