nginx重寫正則匹配問題
Nginx大概配置如下:
upstream appserver {
server 192.168.1.104:8081 weight=10 max_fails=3 fail_timeout=600s ;
}
server {
listen 80;
server_name *.jingsai.xxx.com;
charset utf-8;
access_log logs/access.log main;
location / {
index index.aciton index.jsp index.html index.htm;
if ($host ~* www\.(+)\.(+)\.(+)?$) {
rewrite ^/(.*)$ http://$host/anquan/page/competIndex.action last ;
break;
}
if ($host ~* ^(+)\.(+)\.(+)\.(+)?$) {
rewrite ^/(.*)$ http://$host/anquan/page/index.action last;
break;
}
if ($host ~* www\.(+)\.(+)\.(+)/kepu$) {
rewrite ^/(.*)$ http://$host/kepu/page/competIndex.action last ;
break;
}
if ($host ~* ^(+)\.(+)\.(+)\.(+)/kepu$) {
rewrite ^/(.*)$ http://$host/kepu/page/index.action last;
break;
}
現在需求是,在瀏覽器(以前均默認是瀏覽器輸入)輸入www.jingsai.xxx.com或者www.jingsai.xxx.com/anquan希望跳轉到 http://jingsai.xxx.com/anquan/page/competIndex.action
輸入abc.jingsai.xxx.com或者abc.jingsai.xxx.com/anquan希望跳轉到http://abc.jingsai.xxx.com//anquan/page/index.action
輸入www.jingsai.xxx.com/kepu希望跳轉到http://jingsai.xxx.com/kepu/page/competIndex.action
輸入abc.jingsai.xxx.com/kepu希望跳轉到http://jingsai.xxx.com/kepu/page/index.action
然後將url傳遞給後端的伺服器(resin)處理
現在問題是輸入www.jingsai.xxx.com/kepu在瀏覽器跳轉到了 http://jingsai.xxx.com/anquan/page/competIndex.action
輸入abc.jingsai.xxx.com/kepu跳轉到了http://abc.jingsai.ciwong.com/anquan/page/index.action
請問我應該怎麼寫這個正則匹配呢?
[火星人
]
nginx重寫正則匹配問題已經有507次圍觀
http://coctec.com/docs/service/show-post-11452.html