我正在尝试为以下情况实施nginx
重写规则:
- 请求/testfa/styles/style.css
应重定向到/testfa/templates/styles/style.css
我已经为我的服务器启用了重写日志记录,按照以下规则创建:
location /testfa {
rewrite ^/styles/(.+)?$ /testfa/templates/styles/$1 last;
}
但是当我尝试执行请求时,我从服务器收到404错误,并且日志文件不包含任何有关重写的信息,只有以下消息:
open() "......../testfa/styles/style.css" failed (2: No such file or directory)
为nginx
执行此类重写的正确方法是什么?
答案 0 :(得分:2)
location /testfa/ {
rewrite ^/testfa/styles/(.+)$ /testfa/templates/styles/$1 last;
}
这对你有用吗?
我的测试虚拟>
server {
listen ...ip...:80;
server_name sub.domain.com;
root /usr/local/www/test;
error_log /usr/local/www/test/error_debug.log debug;
rewrite_log on;
location /testfa/ {
rewrite ^/testfa/styles/(.+)$ /testfa/templates/styles/$1 last;
}
}
这是有效的。甚至日志报道:
2011/11/25 01:06:52 [notice] 35208#0: *456705 rewritten data: "/testfa/templates/styles/test.css", args: "", client: IP, server: sub.domain.com, request: "GET /testfa/styles/test.css HTTP/1.1", host: "sub.domain.com"