将所有JPEG URL重定向到单个JPEG ing NGINX

时间:2016-03-07 08:09:44

标签: redirect nginx

有两种情况我试图实现。

方案A:如果客户端请求包含.jpeg或.jpg文件的URL,请将用户重定向到服务器上的单个.jpg文件,在本例中为myimage.jpg

方案B:如果客户端请求包含/ abc /目录的URL,则通过代理将用户重定向到其他域,同时保持URL的正常运行。

以下是我的nginx.conf

的内容
Options +FollowSymLinks

<IfModule mod_rewrite.c>
RewriteEngine On

#Check URL if contain .jpeg or .jpg
RewriteCond %{REQUEST_URI}  (\.jpeg|\.jpg)$
RewriteRule (.*)  myimage.jpg [QSA]

</IfModule>

我提到的大多数Nginx redirect to a single file配置在/var/log/nginx/error.log中不包含错误,但它没有按预期执行。

方案A的更新:

我已经添加了root指令但它仍然没有重写URL。我设法在Apache中实现了这一点,但在Nginx中却没有。在Apache中,我只创建包含如下内容的htaccess文件:

{{1}}

使用这个htaccess,我可以用.jpeg | .jpg重写任何URL请求,用户将显示myimage.jpg的图像,而不是他们用URL请求的jpeg | jpg图像。我尝试过将htaccess用于nginx转换器here,但它无效。

1 个答案:

答案 0 :(得分:0)

您的配置存在一些问题。您似乎没有定义root指令,重写将循环。此外,不确定使用last修饰符的绝对重定向。

root /path/to/document/root;

location ~* \.(jpg|jpeg) {
    rewrite ^ /myimage.jpg break;
}

请注意,正则表达式将URI与嵌入的.jpg字符串匹配。如果您只想匹配以.jpg结尾的URI,请附加$

break将通过处理同一位置块中的URI来阻止重定向循环。

有关详细信息,请参阅this document