2016-05-02 5 views
0

必要な動作のために戻ってHTTPに、1ページ分のhttpsにリダイレクト:などhttps://www.example.com/about-group-benefit-services/として、非ためにリダイレクトし、https://www.example.com/our-services/individual-medical-dental-insuranceこれらの書き換えルールで何が問題になっていますか?他のすべて

HTTPS経由他のページを訪問:

http://www.example.com/our-services/individual-medical-dental-insuranceを訪問は、httpsにリダイレクトHTTPS:http://www.example.com/about-group-benefit-services/

私は様々なソリューションを試してみた、これは(動作しない)私の最新バージョンである:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} our-services/individual-medical-dental-insurance 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} !^our-services\/individual\-medical\-dental\-insurance 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}/$1 
[L,R=301] 
</IfModule> 

これはWordPressのサイト内にある、と.htaccessファイルの残りの部分は、これを含んでいることは注目に値することがあります

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

(.htaccessファイルが上記以外のものが含まれていません)。

+0

は*すべてで起こって任意の*のリダイレクトしているか、エラー、または単に何がありますか?あなたはcloudflareやAWSのようなものを使っていますか? –

+0

Cloudflare/AWSはありません。非httpsへのリダイレクトは正常に動作し、httpsへのリダイレクトは機能しません - httpsには行かず、最後にパスを追加します 'http://www.example.com/our-services/individual-medical-歯科保険/私たちのサービス/個人医療/歯科保険 ' –

+0

@LoicTheAztec - それはうまくいきます** ** httpsページにアクセスすると、残りのサイトはhttps *のままです。解決しようとしている。 –

答えて

1

ない、これはそれを動作させるだろうかどうかわからなく、そこにあなたのルールをいくつかの問題だと、それはコメントに収まらないだろう。

%{REQUEST_URI}常に「/」で始まるので、あなたの正規表現は常になりますtrue( "our-services"で始まることはないので)。

もう1つは、逆参照のためにルールが最後にURLを追加していることです。そのため、削除する必要があります。

最後に、両方のリダイレクトはhttps://になります。

また、あなたは、スラッシュやダッシュをエスケープする必要はありません。

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} ^/our-services/individual-medical-dental-insurance 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} !^/our-services/individual-medical-dental-insurance 
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
</IfModule> 
関連する問題