我的网站上对图像和文件的请求很多,但是名称与真实名称相近。基本上,如果我有一个名为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]
答案 0 :(得分:0)
当放在服务器部分时,我做了那可以正常工作的重写,但后来它没有包含在地图中。
location ~ (.+\.(bmp|gif|ico|jpeg|jpg|png|svg)).+$ {
return 301 /$1;
}
如果有人知道为什么,或者可以确认我做对了?