首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将.htaccess中的子域重定向到www。使用泛型参数?

问如何将.htaccess中的子域重定向到www。使用泛型参数?
EN

Stack Overflow用户
提问于 2019-08-30 00:05:59
回答 1查看 69关注 0票数 1

我正在为以下问题寻找一个有效的解决方案:

我有许多相同的网站域名。

当有人访问www.domainname.tld时,应该会重定向到http://www.domainname.tld

当有人访问subdomain.domainname.tld时,应该会重定向到http://www.domainname.tld

当有人访问domainname.tld时,应该会重定向到http://www.domainname.tld。

==

我尝试了以下几种方法:

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) http://www.%{SERVER_NAME}/$1 [L,R=301]

==

问题:进入subdomain.domainname.tld时会重定向到www.subdomain.domainname.tld

==

我希望它是.htaccess格式的。

我已经搜索过了,但不幸的是没有成功。

如果有人能提供解决方案,我将非常高兴:)

==

在您的帮助下,我能够将代码更改为:

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} ^([^/.]+)\.(.*)\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%2\.%3/$1 [L,R=301]

我只需要一个最后的变化,它不应该直接到http://domain.tld ->,我更喜欢http://www.domain.tld

我尝试过在目标中添加www的不同尝试,但都没有成功。

我以匿名解决方案结束,这个解决方案对我很有效:

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} !^www\.[^.]+\.[^.]+$
RewriteCond %{HTTP_HOST} ([^.]+\.[^.]+)$
RewriteRule (.*) http://www.%1/$1 [L,R=301]

感谢所有有时间阅读和帮助的人!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-30 10:27:39

没有办法删除所有的子域,但你可以得到域名的最后两部分:

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} !^www\.[^.]+\.[^.]+$
RewriteCond %{HTTP_HOST} ([^.]+\.[^.]+)$
RewriteRule (.*) http://www.%1/$1 [L,R=301]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57714019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档