将 www.subdomain.example.com 重定向到 subdomain.example.com

Posted

技术标签:

【中文标题】将 www.subdomain.example.com 重定向到 subdomain.example.com【英文标题】:redirecting www.subdomain.example.com to subdomain.example.com 【发布时间】:2011-02-23 23:22:48 【问题描述】:

我有一些用户试图通过 www.subdomain.example.com 访问注册为 subdomain.example.com 的网站。

我可以添加某种 .htaccess 规则来将使用 www.subdomain.example.com 到达的人重定向到 subdomain.example.com 吗?

另外,我是否必须更改 DNS 内容?

【问题讨论】:

【参考方案1】:

当然,使用如下指令:

<VirtualHost *:80> 
    ServerName www.subdomain.example.com 
    Redirect permanent / http://subdomain.example.com/ 
</VirtualHost> 

当使用 Redirect 指令时,Apache 会自动保留 / 之后的任何内容,这是一个常见的误解,即为什么该方法不起作用(实际上它起作用)。

另外,是的,您需要更改 DNS 记录,因为 www.subdomain.example.com 是一个不同的主机名,需要它自己的 A(或 CNAME)记录首先将浏览器指向适当的服务器。

【讨论】:

这假设 OP 正在使用NameVirtualHost *:80 @Martin:这是一个相当安全的假设。如果不是,那么重要的部分是 Redirect 指令,而不是 VirtualHost 容器。 人们已经在使用www.subdomain.domain.com 访问该站点这一事实表明该 DNS 记录可能已经存在...如果是这样,则无需更改。【参考方案2】:

您需要在 httpd.conf 和 Redirect Permament 中添加一个虚拟主机指令到正确的子域并添加额外的 DNS 条目(CNAME 很好)

【讨论】:

【参考方案3】:
RewriteCond %HTTP_HOST ^www.subdomain.domain.com
RewriteRule (.*) http://subdomain.domain.com/$1 [R=301,L]

【讨论】:

使用重写引擎是解决这个问题的一种非常重量级的方法。 Redirect 指令的作用完全相同。 @GregHewgill 同意,此外,除非将其放置在与 www.subdomain.domain.com(或默认虚拟主机)匹配的虚拟主机中,否则此答案甚至不起作用。

以上是关于将 www.subdomain.example.com 重定向到 subdomain.example.com的主要内容,如果未能解决你的问题,请参考以下文章

如何将Ios文件上传到

Javascript 将正则表达式 \\n 替换为 \n,将 \\t 替换为 \t,将 \\r 替换为 \r 等等

如何将视频文件转换格式

sh 一个将生成CA的脚本,将CA导入到钥匙串中,然后它将创建一个证书并与CA签名,然后将其导入到

python怎么将0写入文件?

如何将CMD窗口背景改成透明?