我知道这个问题之前问过但我在我的服务器上复制它时遇到了问题。
我想做的是,当用户访问 时medicine.example.com
,子域应该映射到example.com/sites/medicine
。因此用户看到的 URL 是medicine.example.com
。index.php 通过 php 剥离。
理想情况下,解决方案将是基于通配符/正则表达式的,这样不仅medicine.example.com
可以映射到 url。
下面的代码给出了一个502 bad gateway
错误。
server {
listen 80;
listen 443 ssl;
server_name medicine.example.com;
location / {
rewrite ^([^.]*[^/])$ $1/ permanent;
proxy_pass_header Set-Cookie;
proxy_pass https://example.com/sites$request_uri;
}
}
答案1
您实际上并不想将请求代理到同一个 Web 服务器,因为这需要更多开销。我会为两个域配置一个虚拟主机,并使用if
语句仅重写子域的请求。
server {
server_name example.com medicine.example.com;
if ($host = "medicine.example.com") {
rewrite . /sites/medicine$request_uri;
}
...
}