使用htaccess规则在子域上进行不需要的https重定向

时间:2015-08-02 00:24:30

标签: apache .htaccess mod-rewrite ssl

我有一些子域s1.mywebsite.coms2.mywebsite.com。我尝试设置网址重写规则,以便将针对mywebsite.com的任何请求转换为https,而对子网域的请求则不会更改。

现在,在我的主域的根目录中,我有一个htaccess文件,其中包含以下内容:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule .* https://mywebsite.com/%{REQUEST_URI} [R,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

有一些内容用于wordpress。就目前而言,我的服务器将请求http://s1.mywebsite.com/page/重写为https://mywebsite.com/page/,完全删除子域。如何让我的规则忽略子域查询?

1 个答案:

答案 0 :(得分:3)

添加条件以仅限制主域的第一个https->http规则:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^(?:www\.)?mywebsite\.com$ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]