.htaccess用于子域的WildCard SSL

时间:2014-02-28 13:21:33

标签: .htaccess mod-rewrite ssl wildcard-subdomain

我为我的域和子域设置了.htaccess文件。如果我手动编写https然后两者都工作正常,但我想强制,以便没有人可以打开没有https。

此外,我想要WWW使用我的主域和没有WWW的子域。下面是我的.htaccess代码,

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^app.domain.com$ 
RewriteCond %{REQUEST_URI} !^/app/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /app/$1 
RewriteCond %{HTTP_HOST} ^app.domain.com$ 
RewriteRule ^(/)?$ app/index.php [L]

如果用户键入www.domain.com/app/

,是否可以将用户重定向到子域

1 个答案:

答案 0 :(得分:1)

您可以插入以下两条规则:

RewriteEngine On

# force https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]

# force www for main site
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]

# remove www for app site
RewriteCond %{HTTP_HOST} ^www\.(app\.domain\.com)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L,NE]

RewriteCond %{THE_REQUEST} \s/+app[/\s] [NC]
RewriteRule ^ / [R=301,L]

RewriteCond %{HTTP_HOST} ^app.domain.com$ 
RewriteCond %{REQUEST_URI} !^/app/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /app/$1 
RewriteCond %{HTTP_HOST} ^app.domain.com$ 
RewriteRule ^(/)?$ app/index.php [L]