2017-09-12 6 views
0

Ich weiß nicht, wie ich dieses Problem lösen kann. Ich brauche von http auf https umgeleitet werden, aber nur in einigen Fällen:htaccess mehrfache Bedingungen umschreiben

Redirect

http://example.com to https://example.com 
http://example.com/any-url to https://example.com/any-url 

dont

http://subdomain1.example.com 
http://subdomain2.example.com 
http://example.com/any-file.xml 

Im auf ssl drehen umleiten, sondern nur meine Domain hat eine Zertifizierung, und ich möchte XML-Dateien ohne Umleitung behalten, um Probleme einiger Partner zu vermeiden.

Irgendwelche Hilfe?

Antwort

0

sollte diese Rewrite arbeiten:

RewriteEngine on 
RewriteCond %{HTTPS} !=on 
RewriteCond %{HTTP_HOST} example.com 
RewriteCond %{REQUEST_URI} !\.xml$ 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 
0

In Ihrem Fall das funktionieren würde, Ihre regelmäßige HTTP-Verbindung unter der Annahme, Port 80:

# If the site is plain HTTP 
RewriteCond %{SERVER_PORT} 80 
# and if the requested filename is not an XML file 
RewriteCond %{REQUEST_FILENAME} !^(.*)\.xml$ 
# and if the URL specifies the request is for the primary domain (not subdomain) 
RewriteCond %{HTTP_HOST} ^example.com$ 
# then rewrite to HTTPS 
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] 

Sie auf natürlich die richtigen Domänen einsetzen müßten aber es sollte funktionieren. Ich habe es auf meinem System getestet und es hat es getan.