htaccess重写多个条件

时间:2017-09-12 01:43:05

标签: apache .htaccess ssl redirect

我不知道如何解决这个问题。我需要从http重定向到https,但仅在某些情况下:

重定向

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

不要重定向

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

我打开ssl,但只有我的域有认证,我喜欢保留xml文件而不重定向,以避免一些合作伙伴问题。

任何帮助?

2 个答案:

答案 0 :(得分:0)

这次改写应该有效:

authorization

答案 1 :(得分:0)

在您的情况下,这将起作用,假设您的常规HTTP连接是端口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]

您当然需要插入正确的域名,但它应该有效。我在我的系统上进行了测试,但确实如此。