私の値IS_HTTPによっては、URLがhttpsかhttpかどうかを以下のコードの後に決めます。htaccess rewriterulesから1つのフォルダを除いて
http://mydomain.com
(空のQUERY_STRINGがあります)、http://mydomain.com/?q=home
、http://mydomain.com/?qq=home
の場合は常にhttp(httpsからリダイレクト)します。 以下のコードは、このようなURLでうまく動作し、IS_HTTPを1に設定します。すべてが完璧です。しかし、管理フォルダへのURLも常にhttpSにしたいので、そのURLからそのURLを除外したいと思います。
これは、次のコードに2番目の文字列を追加した理由ですが、このようなURLはRewriteRule^- [E=IS_HTTP:1]
に適用されません。どうして?再び
#determine if page is supposed to be http
RewriteCond %{REQUEST_URI} !^administration [NC]
#if it has q=home or qq=home in querystring
RewriteCond %{QUERY_STRING} (^|&)(q=home|qq=home)(&|$) [NC,OR]
#or if query string is empty
RewriteCond %{QUERY_STRING} ^$
#set env var to 1
RewriteRule^- [E=IS_HTTP:1]
、私はhttps://mydomain.com/administration/index.php
をしたいと上記のコードは、それらを停止しないのはなぜフォルダ/管理から、他のすべてのファイルがRewriteRule^- [E=IS_HTTP:1]
前に停止しますか?
私がいた試してみた2番目の文字列:
RewriteCond %{REQUEST_URI} !^administration [NC]
RewriteCond %{REQUEST_URI} !^/administration [NC]
が、それらのどれも機能しません。 (私はREQUEST_URIが/から始まらないので、ここでは必要ないと信じていますが、間違っている可能性があります)。
ありがとうございます。代わりに、この条件の