0

私はいくつかの条件付きリダイレクトを構成しようとしています、私が欲しいのはこれです:

http://www.example.com/login
http://www.example.com/login/*
http://www.example.com/login/account
http://www.example.com/login/account/*
https://www.example.com/account
https://www.example.com/account/*

私の問題は、現在の.htaccessルールが/login/accounthttpsでの実行を強制しているため、次のようになります。

http://www.example.com/login
http://www.example.com/login/*
https://www.example.com/login/account
https://www.example.com/login/account/*
https://www.example.com/account
https://www.example.com/account/*

現在のルールは次のとおりです。

<Files .htaccess>
 order allow,deny
 deny from all
</Files>

<IfModule mod_rewrite.c> 
RewriteEngine On 

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ - [E=site_url:http://www.example.com]
RewriteCond %{SERVER_PORT} 443
RewriteRule ^(.*)$ - [E=site_url:https://www.example.com]

RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} /account
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

RewriteCond %{SERVER_PORT} 443
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(/account) 
RewriteRule ^(.*)$ http://www.example.com/$1 [R,L]

RewriteCond %{REQUEST_URI} !(/account)問題はルールにあると思います。たくさんのバリエーションを試し、どこでも検索しましたが、やりたいことに一致するものは見つかりませんでした。

したがって、以下のすべてを明確にするため/accountにhttpsである必要があり、その他はすべてhttpである必要があります。

参考までに、これは式エンジンサイトであるため、これらは物理ファイルやディレクトリではなく、動的に生成されたURLです。

どんな助けでも大歓迎です。

4

1 に答える 1

1

これを試して...

RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} /account
RewriteCond %{REQUEST_URI} !(login/account)
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

RewriteCond %{SERVER_PORT} 443
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(/account) 
RewriteCond %{REQUEST_URI} (login/account)
RewriteRule ^(.*)$ http://www.example.com/$1 [R,L]

HTTPS / HTTPのExpressionEngine固有の例: https ://expressionengine.stackexchange.com/questions/7601/adding-a-htaccess-redirect-to-https-that-plays-nicely-with-existing-ee-htacces/7659# 7659

于 2013-03-26T20:51:10.093 に答える