2016-08-25 4 views
1

を与えられたときに非SSLの強制私は.htaccessファイルで何かを変更することで、SSLを使用するようにユーザーを強制できることを発見した:特定のURLパラメータは[OK]を

RewriteEngine On 
RewriteBase/

# Force SSL 
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 
RewriteCond %{HTTPS} !=on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

# Deny Access to all .htaccess 
<Files .htaccess> 
order allow,deny 
deny from all 
</Files> 

私は書面で本当に良いではありませんよ。 htaccessファイルなので、おそらくインターネットからコピー&ペーストします。

私の質問は、誰かが特定のURLパラメータを持つhttpサイトを訪れているときに、常に1つの例外を除いてSSLを強制的に実行できるかどうかです。

例1:

http://example.com/test?name=John 

https://example.com/test?name=John 

例2にリダイレクトされます:

http://example.com/test?name=John&nossl=1 

https://example.com/test?name=John&nossl=1 
01にリダイレクトされません

これをhtaccessに書き込むことは可能ですか、これを行うすべてのページにPHPファイルを含める必要がありますか?

答えて

0

この質問は# Force SSL条件の前にこれを入れところで

DUPLICATE

です。誰もが同じ問題を持っている場合、このコードは私の作品

RewriteCond %{QUERY_STRING} (^|&)nossl=(1)(&|$) 
RewriteRule^http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
+0

私が探していたごめんなさいそのためにはそれを見つけられていない –

+0

問題はありません@RaphaelPortmann – Riccardo

0

は(/ nossl = 1を、それがリダイレクトする場合は、必要に応じて、HTTPにSSLにすべてのリンクをリダイレクト):

# Force SSL 
RewriteCond %{QUERY_STRING} !(^|&)nossl=(1)(&|$) 
RewriteCond %{HTTPS} off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

# Force Non-SSL if URL parameter nossl=1 
RewriteCond %{QUERY_STRING} (^|&)nossl=(1)(&|$) 
RewriteCond %{HTTPS} on 
RewriteRule^http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
関連する問題