2017-09-13 14 views
0

すべてのリダイレクトを強制的にhttpsにリダイレクトしたいが、特定のページにリダイレクトしないようにするには、この.htaccessファイルが必要です。私はすべてがhttpsにリダイレクトしますが、特定のページにHTTPを強制したいallをsslとindex.phpにリダイレクトする方法はsslではなく特定のページのindex.phpにリダイレクトする

RewriteEngine on 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA] 

: /exchage

私は、この機能を実現するために私の.htaccessファイルを置くためにどのようなコードが必要ですか?ありがとう。

答えて

1

HTTPSリダイレクトに別の条件を追加して、パスがexchangeで始まらないことを確認するにはどうすればよいですか? (私はあなたがEXCH 年齢をスペルミスと仮定)

RewriteEngine on 
RewriteCond %{REQUEST_URI} !^/exchange 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
RewriteCond %{REQUEST_URI} ^/exchange 
RewriteCond %{HTTPS} on 
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA] 

あなたの.htaccessファイルを更新した後は、ブラウザを再起動してください。それ以外の場合は、以前にURLがhttpsであることがわかっている場合はhttpsを強制的に実行する可能性があります。

+0

交換ページはまだhttpsになります。 : –

+0

私はちょうどそれを更新しました。もう一度試してみることができますか? –

+0

私はもう一度試してみましたが、問題は依然として続きます: –

0

私はこのコードの問題を解決します。

RewriteEngine on 
RewriteCond %{HTTPS} off 
RewriteCond %{THE_REQUEST} !/exchange 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
RewriteCond %{HTTPS} on 
RewriteCond %{THE_REQUEST} /exchange 
RewriteRule^http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA] 

私はこのコードを出すのに約3時間かかりました。

+0

ちょっと注意してください。/httpsルールのURLが_contains_ '/ exchange'の場合、例えば'/anything/exchange/whatever/'もhttpに強制されます –

+0

私はそれを更新して問題を引き起こしません。 –

関連する問題