【发布时间】:2019-10-16 11:23:16
【问题描述】:
我的网站上有很多错误的图像和文件请求...但名称与真实姓名相近。基本上,如果我有一个名为 example.gif 的文件,就会调用 example.gifzerzer。我想要的是重写以保留名称和扩展名,但之后什么都没有。
我确实创建了一个带重写的映射文件(例如,除了扩展后删除所有内容的规则之外,它在下面的 tmp.php 到 index.php 重写中起作用)。
这是我到目前为止所做的:
/(.+\.(bmp|gif|ico|jpeg|jpg|png|svg)).+ /$1;
这也不行
/(.+\.(bmp|gif|ico|jpeg|jpg|png|svg)).+? /$1;
我的地图:
map $request_uri $redirect_uri {
default "";
/(.+\.(bmp|gif|ico|jpeg|jpg|png|svg)).+ /$1;
/tmp.php /index.php;
}
在迁移到 Nginx 之前,我在 Apache 下,这很有效:
RewriteRule ^([a-z0-9\-/_]*\.(bmp|gif|ico|jpeg|jpg|png|svg)).+ /$1 [R=301,L]
【问题讨论】:
-
请注意,如果我只将重写放在服务器部分,而不使用映射,则重写正在工作(除了它不会更改 url)
标签: nginx url-rewriting nginx-config