我的问题
我有一个指向不同服务器的子域。服务器具有SSL,因此当用户键入子域时:https://my.maindomain.co
它运行良好。使用htaccess我尝试重定向键入以下网址的所有用户:https://www.my.maindomain.co
或等效于正确版本的http://
(https://my.maindomain.co)。
我认为下面会很好用但不会:
# rule for removing www on sub domains
RewriteCond %{HTTP_HOST} ^www\.([^.]+\.maindomain\.co)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
有人帮我解决这个问题吗?
作为参考,我将此代码放在maindomain.co服务器上的htaccess中,该服务器托管在与my.maindomain.co不同的服务器上
答案 0 :(得分:0)
您可以将此规则用于托管子域的服务器上的子域。它应该照顾您的要求。
RewriteEngine On
RewriteCond %{HTTPS} !^on [OR]
RewriteCond %{HTTP_HOST} !^my\.example\.co$ [NC]
RewriteRule ^ https://my.example.co%{REQUEST_URI} [R=301,L]
请注意,www.my.example.co
必须有有效的ssl证书,才能输入www.my.example.co
。否则,它仍会将http://my.example.co
重定向到https://my.example.co
。
答案 1 :(得分:0)
首先,你的意思是'它不起作用'?如果您可以指定在尝试加载https://www.my.subdomain.co
时获得的确切错误,那将会很有帮助除此之外我还可以考虑另外一个因素,如果您使用 apache 服务器,您可能需要添加' www.my.tutella.co '来虚拟主机配置 my.tutella.co
下的 ServerAlias答案 2 :(得分:0)
You don't actually need mod_rewrite
to do this.
在子域的.htaccess
中(或者,如果您可以访问主Apache配置,那么它比.htaccess
文件更有效),您可以使用此指令:
Redirect / https://my.example.co/
...这使用mod_alias
,比mod_rewrite
等效内容更容易理解和排查。