NGINX重写以删除URL段

时间:2015-06-30 12:13:44

标签: nginx url-rewriting rewrite

我已将我的网站移动到从apache运行nginx的新服务器。

旧网站结构是:

example.com/NEW /

新结构:

example.com /

我有一些应用程序仍然引用上传/文件,如:

example.com/NEW/assets/images/7871862618261826.jpg

我需要重写包含/ NEW /参数的所有请求。

例如:

example.com/NEW/assets/images/7871862618261826.jpg

应该路由到:

example.com/assets/images/7871862618261826.jpg

My Current Nginx配置如下:

server {
    listen 80;
    server_name www.domain.com domain.com;
    return 301  https://www.domain.com$request_uri;
}

服务器{

listen  443;
if ($http_host = domain.com) {
    rewrite  (.*)  https://www.domain.com$1;
}

location /NEW/ {

     rewrite ^/NEW(.*)$ $1 last;
     #return 405;
     #return 301  https://www.domain.com$request_uri;
}


server_name domain.com www.domain.com;

access_log /var/log/nginx/domaincom.access.log;
error_log /var/log/nginx/domaincom.error.log;

root /var/www/domain.com/public_html/;
index index.html index.htm index.php;

 #set default location
 location / {

        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;

 }

}

如何实现重写?

1 个答案:

答案 0 :(得分:0)

我终于使用了以下位置块:

location ~ /NEW/.*\.(png|jpg|gif|pdf|doc)$ {

     rewrite ^/NEW(.*)$ $1 last;

}

似乎没有按要求执行位置块。