1つを除くすべてのページでHTTPSを強制するようにcodeigniterアプリをセットアップしようとしています。ただし、ユーザーが問題のページにいない場合にのみリダイレクトするルールを取得できません。
除外する必要のあるページには、次のURLがあります。
- http://mydomain.com/kpi/reports/67
- http://mydomain.com/kpi/reports/67/overview/2013-02-01/2013-02-28
- http://mydomain.com/index.php?/kpi/reports/67
- http://mydomain.com/index.php?/kpi/reports/67/overview/2013-02-01/2013-02-28
数字の67と日付はすべて、上記のURLで変更される可能性があるため、以下の正規表現のユーザーです。
正規表現をテストしましたが、URLと一致しているようです。ただし、htaccessはとにかくhttps://にリダイレクトしているようです。
私の.htaccessファイルは次のとおりです...
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#Disallow access to system dir
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
#Disallow access to application dir
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
#Force https when not on overview report
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/index\.php\?/kpi/reports/?([0-9]+)$
RewriteCond %{REQUEST_URI} !^/index\.php\?/kpi/reports/?([0-9]+)/overview/?([0-9]+)-?([0-9]+)-?([0-9]+)/?([0-9]+)-?([0-9]+)-?([0-9]+)$
RewriteCond %{REQUEST_URI} !^/kpi/reports/?([0-9]+)$
RewriteCond %{REQUEST_URI} !^/kpi/reports/?([0-9]+)/overview/?([0-9]+)-?([0-9]+)-?([0-9]+)/?([0-9]+)-?([0-9]+)-?([0-9]+)$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=302,L]
#If not a valid file, redirect request through index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
どんな助けでも大歓迎です!