.htaccessを編集していますが、思い通り動作せず皆様のお力添えを頂きたく思います。


  1. したいこと:

    • HTTPアクセスをHTTPSに統一
  2. 状況:

    • リダイレクトループになってしまう。
  3. 環境:

    • AWS ロードバランサー でSSL設定済み
    • Apache 2.4
    • Laravel5.1LTS
      .htaccessはLaravel5.1にあったものを編集しています。
  4. 他:

    • .htaccessとログを記載します。

.htaccess

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{HTTPS} on # HTTPSアクセスの場合
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f # ファイルが存在しない場合
    RewriteRule . index.php [L] # index.phpに書き換えて終了

    RewriteCond %{HTTPS} off # HTTPアクセスの場合
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L,R] # https://ホスト名/URI にリダイレクトし終了

</IfModule>

ログ (主要な部分を抜き出しています)

add path info postfix: /var/www/html/path -> /var/www/html/path/to
strip per-dir prefix: /var/www/html/path/to -> path/to
applying pattern '^(.*)/$' to uri 'path/to'
add path info postfix: /var/www/html/path -> /var/www/html/path/to
strip per-dir prefix: /var/www/html/path/to -> path/to
applying pattern '.' to uri 'path/to'
RewriteCond: input='off' pattern='on' => not-matched
add path info postfix: /var/www/html/path -> /var/www/html/path/to
strip per-dir prefix: /var/www/html/path/to -> path/to
applying pattern '.' to uri 'path/to'
RewriteCond: input='off' pattern='off' => matched
RewriteCond: input='/var/www/html/path' pattern='!-d' => matched
RewriteCond: input='/var/www/html/path' pattern='!-f' => matched
rewrite 'path/to' -> 'https://myhostname/path/to'
explicitly forcing redirect with https://myhostname/path/to
escaping https://myhostname/path/to for redirect
redirect to https://myhostname/path/to [REDIRECT/302]  -->ここまでをループしている
add path info postfix: /var/www/html/path -> /var/www/html/path/to
strip per-dir prefix: /var/www/html/path/to -> path/to
applying pattern '^(.*)/$' to uri 'path/to'
add path info postfix: /var/www/html/path -> /var/www/html/path/to
strip per-dir prefix: /var/www/html/path/to -> path/to
applying pattern '.' to uri 'path/to'
RewriteCond: input='off' pattern='on' => not-matched
add path info postfix: /var/www/html/path -> /var/www/html/path/to
strip per-dir prefix: /var/www/html/path/to -> path/to
applying pattern '.' to uri 'path/to'
RewriteCond: input='off' pattern='off' => matched -->httpsでリダイレクトした筈なのに。。
RewriteCond: input='/var/www/html/path' pattern='!-d' => matched
RewriteCond: input='/var/www/html/path' pattern='!-f' => matched
rewrite 'path/to' -> 'https://myhostname/path/to'
explicitly forcing redirect with https://myhostname/path/to
escaping https://myhostname/path/to for redirect
redirect to https://myhostname/path/to [REDIRECT/302]
・
・
同じのが延々と続く

また、.htaccessが今ひとつ理解出来ておらず、記載が冗長な気もしており、もっとスマートな記述方法などがございましたら教えていただきたいです。
よろしくお願いします。