2017-06-06 10 views
0

ウェブサイトにHTTPSを強制するにはどうすればよいですか?私はthis答えから解決しようとしましたが、リンクをクリックしてインデックスページにアクセスしたときに何らかの理由で親ディレクトリにリダイレクトされました(.htaccessにコードを追加する前にうまくいきました)。また、私はHTTPを使用して自分のウェブサイトにアクセスしようとすると、それができます。私は何が欠けていますか?.htaccessを使用してHTTPSを強制する

+2

サウンズ末尾のスラッシュまたは欠落したスラッシュは、a)その答えとb)セットアップによって処理されます。 – arkascha

+1

'.htaccess'ファイルの内容をあなたの質問に追加してください。 「インデックスページにアクセスすると親ディレクトリにリダイレクトされます」/「HTTPを使用して自分のウェブサイトにアクセスしようとすると、私はそれを可能にします」 - リダイレクトされるかどうか – MrWhite

答えて

1

Apacheの場合、.htaccessを含むいくつかの選択肢があります。ここ

ルック:ドキュメント毎の

、あなたの最善の策は、非セキュアVirtualHostRedirectディレクティブを使用することです。ここでは

NameVirtualHost *:80 
<VirtualHost *:80> 
    ServerName mysite.example.com 
    DocumentRoot /usr/local/apache2/htdocs 
    Redirect permanent /secure https://mysite.example.com/secure 
</VirtualHost> 

<VirtualHost _default_:443> 
    ServerName mysite.example.com 
    DocumentRoot /usr/local/apache2/htdocs 
    SSLEngine On 
# etc... 
</VirtualHost> 

です.htaccessの例、同じリンクから:

Redirect permanent /login https://mysite.example.com/login 

最後に、(:ポート443のための名前付き仮想ホスティングを有効にするには、「443 NameVirtualHostで*」は、例えば、忘れる):追加のトラブルシューティングのヒントについては、ここを見てあなたはどのように問題があるよう

Why might Apache ignore a virtual host with a ServerName matching the requested URL?

+0

'Redirect permanent/login https:// mysite.example.com/login'を使用すると、このエラーが表示されます:' ERR_TOO_MANY_REDIRECTS'。また、私はウェブサイトをホストするためにaltervista.orgを使用しているので、正確なファイルがどこにあるのか分かりません。 – sgrontflix

+0

「.htaccess」で 'Redirect'を使ってHTTPからHTTPSへのリダイレクトを行うことを示唆している理由がわからないのですが、実際にはリダイレクトループが発生します(宛先URLが別のサーバーではない、そう思わない場合)。 (はい、 'Redirect'は' .htaccess'で使うことができますが、この目的では使用できません) '.htaccess'でこれをしているのであれば、mod_rewriteを使用して_need_を使う必要があります。現在のリクエストはHTTPまたは既にHTTPSです。 – MrWhite

+0

@ user82217私は[this](https://wiki.apache.org/httpd/RewriteHTTPToHTTPS)リンクから2番目の例に従っていますが、どちらもうまくいかないようです。助言がありますか? – sgrontflix

関連する問題