我试图通过一个PHP脚本来告诉nginx使用X-Accel-Redirect进行内部X-Accel-Redirect 。
由于脚本提供了许多types的文件,我只希望为字体添加Access-Control-Allow-Origin标头。
这是我尝试过的configuration:
location /deploys/ { internal; alias /www/deploys/; expires 1y; add_header Access-Control-Allow-Origin *; }
这种方法的问题是现在所有的文件都包含Access-Control-Allow-Origin头文件。 我只想要我的字体有这个头。
所以,我尝试了一个条件:
location /deploys/ { internal; alias /www/deploys/; expires 1y; if ($request_filename ~* ^.?/([^/]?)$) { set $filename $1; } if ($filename ~* ^.*?\.(eot)|(ttf)|(woff)$){ add_header Access-Control-Allow-Origin *; } }
不幸的是,这不起作用(我怀疑这是由于使用X-Accel-Redirect的内部redirect)。
如何使用X-Accel-Redirect为一些扩展添加Access-Control-Allow-Oirgin头?
它看起来像alias会改变请求文件。 我没有时间编译和安装echo模块来validation,但是使用下面的configuration修复了这个问题:
location /deploys/ { internal; if ($request_filename ~* ^.?/([^/]?)$) { set $filename $1; } if ($filename ~* ^.*?\.(eot)|(ttf)|(woff)$){ add_header Access-Control-Allow-Origin *; } alias /www/deploys/; expires 1y; }