ポート:443でリッスンするApache vhostがあります
条件を満たさない限り、https リクエストを http にリダイレクトしようとしています。
- ドメインから
www.site.co.uk
- リクエストの uri 部分にまたはのいずれ かを含む
/alpha
/beta
プロセスは次のとおりですが、コメント付きのロジックとともに構成に次のステートメントがhttps://www.mysite.co.uk/alpha
ありhttps://www.mysite.co.uk/beta
ますが、どういうわけか301されています
条件付き書き換えのロジック フローを誤解していませんか?
RewriteEngine On
# if host submitted is not 'www.mysite.co.uk' un-https the url (i.e. catchall)
RewriteCond %{HTTP_HOST} !^www\.mysite\.co\.uk [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}$1 [NC,L,R=301]
# otherwise IF THE domain is 'www.mysite.co.uk
# *and* if the uri does not contain 'alpha' *or* 'beta' un-https the url
RewriteCond %{HTTP_HOST} ^www\.mysite\.co\.uk [NC]
RewriteCond %{REQUEST_URI} !^\/alpha/? [NC,OR]
RewriteCond %{REQUEST_URI} !^\/beta/? [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}$1 [NC,L,R=301]
# otherwise the domain must be www.mysite.co.uk
# and the uri must contain '/alpha' *or* '/beta'
# in which case do nothing