当我尝试在基于 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;
}
}
}