繁体   English   中英

Apache重定向到https:// www,然后代理到localhost

[英]Apache redirect to https://www and then proxy to localhost

我有一个在localhost:8180上运行的node.js应用程序。

我希望只能通过https://www.example.com从网络上访问该应用程序。

目标是将所有前往http://example.com : http://www.example.com https://example.com http://example.com流量重定向到https://www.example.com

我可以访问Plesk面板v12.5.30。 在此面板中,我可以为http和https请求配置单独的.htaccess规则。 该面板如下所示:

Plesk Apache指令面板

我可以使用此面板实现目标吗?

我已经尝试过以下针对http和https的规则,但是出现代理错误。

http

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com$1 [L,R=301]`

https

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://localhost:8180$1 [P]
ProxyPassReverse / http://localhost:8180/

我强烈建议像这样使用Nginx指令:

if ($scheme != https) {
    return 301 https://www.example.com$request_uri;
}

使用Nginx重定向301

您还可以在所有.htaccess文件代码之上尝试更好的兼容性htaccess代码:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM