我的云服务器上托管有一个 odoo 实例,可以通过 https://odoodomain.net 访问它。我想做的是,我有一个可以通过 https://odoodomain.net/jobs 访问的页面。我想从新域访问该页面,例如 https://odoojobs.net。该页面还可以有查询参数。假设当浏览器请求 https://odoojobs.net/1?order=date 时,它应该被重定向到 https://odoodomain.net/jobs/1?order=date。我怎样才能做到这一点?请参考以下nginx配置。
# Odoo Upstreams
upstream odooserver {
server 127.0.0.1:8011;
}
# http to https redirection
server {
listen 80;
server_name odoodomain.net.net 111.111.111.111:8011;
return 301 https://odoodomain.net$request_uri;
}
server {
listen 443 ssl;
server_name odoodomain.net;
access_log /var/log/nginx/odoo_access.log;
error_log /var/log/nginx/odoo_error.log;
# SSL
ssl_certificate /home/ubuntu/ssl_wildcard/nginx_cert.crt;
ssl_certificate_key /home/ubuntu/ssl_wildcard/odoodomain.net.key;
# Proxy settings
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
client_max_body_size 0;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host odoodomain.net;
# Request for root domain
location / {
proxy_redirect off;
proxy_pass http://odooserver;
}
# Cache static files
location ~* /web/static/ {
proxy_cache_valid 200 90m;
proxy_buffering on;
expires 864000;
proxy_pass http://odooserver;
}
# Gzip Compression
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}
还有另一种方法可以处理这个问题,例如在自定义模块中使用controller.py:
@http.route(['/am-lebensende-begleiten', ], type='http', auth="public", website=True)
def thanato_urls_redirect_de2(self, page=1, **searches):
if request.website.name == "Thanatosophia":
return werkzeug.utils.redirect('https://de.thanatosophia.com/am-lebensende-begleiten', 301)