2016-09-05 11 views
1

に常にリダイレクト:mod_rewriteのは、私は、コードを持っている301

# No https a https 
RewriteCond %{HTTPS} !=on [NC] 
RewriteRule !(cecabank)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301] 

# Handle Front Controller... 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

私はHTTPがONではないとURLがcecabankないときにhttpsにリダイレクトします。

これは動作します:私はHTTPSのリダイレクトが正常に動作します削除した場合301でindex.phpにリダイレクトしたくない301

http://sample.es/index.phphttp://sample.es/cecabankリダイレクト:http://sample.es/sampleはこのdoesntの仕事がhttps://sample.es/sample

に301リダイレクトそれはリダイレクトされません。

答えて

2

は強制的にリダイレクトの世話をします(Apacheの2.4+以降で利用可能)以下の

RewriteEngine On 

# No https a https 
RewriteCond %{HTTPS} !=on [NC] 
RewriteCond %{REQUEST_URI} !^/cecabank [NC] 
RewriteRule^https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301] 

# Handle Front Controller... 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L,END] 

ENDフラグを試してみてください。

+0

** END **は動作しますが、なぜですか? 'RewriteRule^index.php [L、END]'は.htaccessファイルの最後のルールです。 –

+1

@ PedroGamez 'L'フラグを指定すると、もう一度ルールが実行され、' index.php'は 'RewriteRule'節の例外ではないので、リダイレクトが発生します。 – hjpotter92

関連する問題