Nginx 位置匹配导致 404

Nginx 位置匹配导致 404

我正在尝试为某些文件类型添加行为,但由于我的内容不在同一个文件夹中,所以遇到了位置匹配导致 Nginx 在错误的文件夹中查找内容的问题。

以下情况下,对的请求/wp-content/themes/ryu/fonts/ClearSans-Regular.woff会使 nginx 查找文件,/opt/wordpress/wp-content/themes/ryu/fonts/ClearSans-Regular.woff而如果我注释掉location ~* \.(ogg|ogv|svg|svgz|eot... 部分,Nginx 会在正确的位置查找内容。

有任何线索可以让我实现这个目标吗?

server {
  listen *:80;

  root /opt/wordpress;

  location ~* \.(eot|ttf|woff)$ {
    add_header Access-Control-Allow-Origin *;
  }

  location ~* \.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
    access_log off;
    log_not_found off;
    expires max;
  }

  location /wp-content/ {
    alias /opt/wp-content/;
    try_files $uri =404;
  }

  location / {
    alias /opt/public/;
    expires 1d;
    index index.html;
    try_files $uri @wpsupercache;
  }

}

答案1

不添加

root /opt/;

ogg... location节中执行您想要的操作?假设您的示例的文件系统路径是/opt/wp-content/themes/ryu/fonts/ClearSans-Regular.woff

相关内容