2017-09-04 15 views
0

私はnode.jsアプリケーションをlocalhost:8180で実行しています。https:// wwwにApacheをリダイレクトしてからlocalhostにプロキシする

私は、ウェブからhttps://www.example.com経由でのみアクセスできるようにします。

目標は、http://example.comhttp://www.example.comhttps://example.comからhttps://www.example.comに行くすべてのトラフィックをリダイレクトすることです。

私はPleskパネルv12.5.30にアクセスできます。このパネルでは、httpとhttps要求に対して個別の.htaccessルールを設定できます。パネルには、次のようになります。

Plesk Apache directives panel

私は、このパネルを使用して、私の目標を達成することはできますか?

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/ 

答えて

0

私は非常にこのようにする代わりにnginxのディレクティブを使用することをお勧め:

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

Redirect 301 using Nginx

また、すべてのあなたの.htaccessファイルコードの上に優れた互換性のhtaccessのコードを試すことができます。

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

事がWWWでhttpをhttpsにリダイレクトすることは完璧に動作していることです。 httpsバージョンの条件付きリダイレクトに問題があります。これはうまくいくはずです:wwwにリダイレクトせず、ローカルホストにwww->プロキシーを持っています –

+0

はい、上記のようにnginxの条件を使うことができます: 'if($ scheme!= https)' https://serverfault.com/questions/586586/nginx-redirect-via-proxy-rewrite-and-preserve-url –

+0

ロケーションブロックを試すことができます:https://serverfault.com/questions/586586/nginx-redirect -via-proxy-rewrite-and-preserve-url –

関連する問題