nginx重写最终在错误的文件夹中

时间:2015-02-01 07:28:29

标签: nginx path rewrite

我试图在nginx中设置一些重写规则来简化php uris,但是 我似乎无法让它工作,我也无法在其他任何地方找到答案。这是一个简单的问题示例:

假设我在根文件夹中有一个文件test.html

<!DOCTYPE html>
<html><body>
Test
<img src="img/image.jpg">
</body></html>

我想做的就是像http://example.com/test/这样的网址会显示html页面。

使用此规则

rewrite ^/test/$ /test.html last;

网站已加载,但服务器似乎最终出现了“错误”。路径。无法显示图片,因为服务器正在/test/img/image.jpg而不是/img/image.jpg

查找图片

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

你可能想要的是:

rewrite ^/test/$ /test.html last;
rewrite ^/test/(.*)$ /$1 last;

第一条规则会将http://example.com/test/重定向到您的test.html文件。现在test.html加载了新的基本路径/test,HTML文件中定义的所有后续相对URL都将加载到包含img/image.jpg的此路径下。这是正确的行为。

我添加的第二行将解析test.html中相对于其基本目录/的所有相对路径。