Redirect 将所有JPEG URL重定向到单个JPEG ing NGINX
我正试图实现两个场景 场景A:如果客户端请求包含.jpeg或.jpg文件的URL,请将用户重定向到服务器上的单个.jpg文件(本例中为myimage.jpg) 场景B:如果客户端请求包含/abc/目录的URL,则通过代理将用户重定向到其他域,同时保持该URL不变 下面是我的nginx.conf的内容Redirect 将所有JPEG URL重定向到单个JPEG ing NGINX,redirect,nginx,Redirect,Nginx,我正试图实现两个场景 场景A:如果客户端请求包含.jpeg或.jpg文件的URL,请将用户重定向到服务器上的单个.jpg文件(本例中为myimage.jpg) 场景B:如果客户端请求包含/abc/目录的URL,则通过代理将用户重定向到其他域,同时保持该URL不变 下面是我的nginx.conf的内容 http { server { listen 80; root /usr/share/nginx/html; #Scenario A
http {
server {
listen 80;
root /usr/share/nginx/html;
#Scenario A
location ~* \.(jpg|jpeg){
rewrite ^$ /myimage.jpg break;
}
#Scenario B
location ^~ /abc/ {
proxy_pass http://cd.mycontent.com.my;
proxy_redirect localhost http://cd.mycontent.com.my;
proxy_set_header Host $host;
}
}
......
我提到的配置中的大部分内容在/var/log/nginx/error.log中不包含错误,但它的性能并不像预期的那样
场景A的更新: 我已经添加了root指令,但它仍然没有重写URL。我在Apache中实现了这一点,但在Nginx中没有。在Apache中,我仅创建内容如下的htaccess文件:
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>
Options+FollowSymLinks
重新启动发动机
#检查URL是否包含.jpeg或.jpg
RewriteCond%{REQUEST\u URI}(\.jpeg\.jpg)$
重写规则(.*)myimage.jpg[QSA]
有了这个htaccess,我可以用.jpeg |.jpg重写任何URL请求,用户将看到myimage.jpg的图像,而不是他们用URL请求的任何jpeg | jpg图像。我尝试过使用htaccess访问nginx转换器,但它不起作用。您的配置有几个问题。您似乎没有定义
root
指令,重写将循环。另外,不确定是否使用带有last
修饰符的绝对重定向
root /path/to/document/root;
location ~* \.(jpg|jpeg) {
rewrite ^ /myimage.jpg break;
}
请注意,正则表达式将使用嵌入的.jpg
字符串匹配URI。如果您只想匹配以.jpg
结尾的URI,请附加一个$
中断
将通过处理同一位置块中的URI来防止重定向循环
有关详细信息,请参阅