1

そのため、ユーザーにhttpではなくhttpsバージョンのページにアクセスするように強制したいと思います。そして、この投稿によると、私がしなければならないのはこれだけです:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L]

ただし、のサイトはメインディレクトリ内のフォルダにあるため、にありますwww.domain.com/Folder。したがって、このhtaccessコードはメインディレクトリ内またはサブディレクトリ内に配置する必要があります。メインサイトへのアクセス方法を変更したくないので、フォルダのみ。

4

4 に答える 4

2

これは、特にhttpd.confにアクセスできる場合は、これを行うにはあまり適切な方法ではありません。より良い方法は、2つの仮想ホストを作成することです。1つは標準のポート80のもので、SSLバージョンへの無条件のリダイレクトがあります。たとえば、疑似っぽい.confトークの場合です。

<VirtualHost example.com:80>
   RedirectPermanent / https://example.com
   DocumentRoot /some/fake/path
</VirtualHost>

<VirtualHost example.com:443>
   normal site stuff here...
</VirtualHost>

これには、config messupが.htaccessファイルを無効にしてもリダイレクトを実行可能にしておくという利点があり、SSLが何らかの理由で停止した場合に偽の/存在しないコンテンツを提供します。

于 2012-10-28T16:29:44.620 に答える
1

ルートディレクトリに残しておくこともできますが、次のように変更してください。

RewriteRule ^(your-directory/.*)$ https://www.yourdomain.com/$1 [R,L]

ただし、リダイレクトが発生する前に、機密データの可能性があるCookieとクエリパラメータがすでにクリアテキストで送信されていることに注意してください。Cookieを使用する場合は、安全なCookie属性を使用することを忘れないでください。

于 2012-10-28T16:32:28.553 に答える
0

httpからhttpsにリダイレクトする場合、サイトは脆弱になる可能性があります。詳細については、こちらをご覧ください。

http://www.thoughtcrime.org/software/sslstrip/

于 2013-05-30T02:28:58.913 に答える
0

「サイト検証」の名の下にブラウザに開く大きなギャップのあるセキュリティホールを修正するまで、「SSLを強制する」のはばかげているようです。これには本当の根拠がなく、不正なCA、不正な状態、または破損による悪用の可能性があります。(そして、「検証」は、ユーザーが実際にサイトを閲覧したくないというユーザーの希望に基づいていないので、とにかく役に立たない-「有効な」証明書を持つフィッシングサイトがたくさんある!)

SSLについて多くの誤った情報が乱用されている方法があります

自己署名証明書で同じ暗号化を取得しますが、ブラウザはサイトが「信頼できない」とユーザーに通知します(もちろん、根拠はありません-「チェックされていない」または「検証できない」は警告が実際に言うべきことです-警告は有益である必要がありますユーザーを怖がらせるようなものではなく、ほとんどのユーザーは、残りの警告を読まずにユーザーを閉じるだけです!)

これがブラウザで修正されるまで、WebサイトのコンテキストでSSLを使用することはお勧めできません。

その間、ポート443を忘れて、独自の暗号化レイヤーを実装することをお勧めします(または、ブラウザーである必要がない場合はsshのようなものを使用します)

于 2013-10-25T04:01:30.637 に答える