bounty还有2天到期。回答此问题可获得+350声望奖励。MKANET正在寻找典型答案。
目前,我可以访问:https://files.mydomain.com/files
。即使我转到https://files.mydomain.com
,它也会自动成功重定向到https://files.mydomain.com/files
。
相反,我希望NGINX自动重写https://files.mydomain.com/files
-> https://files.mydomain.com
我当前的NGINX代码:
http {
server {
listen 80;
server_name localhost;
return 301 https://$host$request_uri;
}
server {
listen 80;
server_name files.mydomain.com;
location / {
return 301 https://files.mydomain.com$request_uri;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name files.mydomain.com;
client_max_body_size 0;
location / {
return 301 https://$host/files;
}
location /files {
proxy_pass http://localhost:89;
}
}
#Root Domain
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name_in_redirect off;
server_name www.mydomain.com mydomain.com;
log_not_found off;
location / {
root /inetpub/wwwroot;
index index.html index.htm;
}
}
}
我的最佳尝试:
不幸的是,当我访问时,它只是把我带到“欢迎使用NGINX”网页:https://files.mydomain.com
http {
server {
listen 80;
server_name localhost;
return 301 https://$host$request_uri;
}
server {
listen 80;
server_name files.mydomain.com;
location / {
return 301 https://files.mydomain.com$request_uri;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name files.mydomain.com;
client_max_body_size 0;
location ^~ /files {
rewrite ^/files/?(.*)$ https://files.mydomain.com/$1 permanent;
proxy_pass http://localhost:89/files;
}
}
#Root Domain
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name_in_redirect off;
server_name www.mydomain.com mydomain.com;
log_not_found off;
location / {
root /inetpub/wwwroot;
index index.html index.htm;
}
}
}
1条答案
按热度按时间qlfbtfca1#
我知道你在要求重写网址,但你试过
proxy_pass
+alias
的方式吗?我在家里的测试看起来不错。我只是将文件放在一个文件夹中,并使用以下nginx配置(我使用端口8443作为假SSL端口):
http://files.ssl.localhost:8443/files/
和http://files.ssl.localhost:8443
都指向相同的目录列表:例如,我们可以得到file.txt的内容:
我希望这种方法符合你的目标,或者对其他任何人都有意义。
[
UPDATE 1
]为了更好地匹配您的配置,也许这可以更清楚:
这里,
http://files.ssl.localhost:443
和http://files.ssl.localhost:443/files
也指向同一个文件夹,服务于端口89。[
UPDATE 2
]由于我们不需要定义由IIS提供服务的端口89,您会尝试这样的代码吗?
它与我的SSL域名,我没有任何IIS服务器,但它可以匹配。
[
UPDATE 3
]因此,由于您的IIS服务器似乎在路由
/
上暴露了其../files
文件夹,您会尝试以下建议吗?(前两个的混合)