Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 将www.subdomain.example.com重定向到subdomain.example.com_Apache_.htaccess_Dns - Fatal编程技术网

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

Apache 将www.subdomain.example.com重定向到subdomain.example.com,apache,.htaccess,dns,Apache,.htaccess,Dns,我有一些用户试图访问在www.subdomain.example.com注册为subdomain.example.com的网站 我是否可以添加某种.htaccess规则,将使用www.subdomain.example.com到达的人重定向到subdomain.example.com 另外,我是否必须更改DNS内容?当然,请使用如下指令: RewriteCond %{HTTP_HOST} ^www.subdomain.domain.com RewriteRule (.*) http://subd

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

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


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

当然,请使用如下指令:

RewriteCond %{HTTP_HOST} ^www.subdomain.domain.com
RewriteRule (.*) http://subdomain.domain.com/$1 [R=301,L]
<VirtualHost *:80> 
    ServerName www.subdomain.example.com 
    Redirect permanent / http://subdomain.example.com/ 
</VirtualHost> 

服务器名www.subdomain.example.com
重定向永久/http://subdomain.example.com/ 
当使用
重定向
指令时,Apache会自动保留
/
之后的任何内容,这是一种常见的误解,即为什么此方法不起作用(实际上它起作用了)


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

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

使用重写引擎是解决此问题的一个非常重要的方法。
重定向
指令的作用完全相同。@GregHewgill同意,而且,这个答案甚至不起作用,除非它放在与www.subdomain.domain.com(或默认vhost)匹配的vhost中。这假设OP使用的是
NameVirtualHost*:80
@Martin:这是一个相当安全的假设。如果不是,那么重要的部分是
重定向
指令,而不是
虚拟主机
容器。事实上,人们已经使用
www.subdomain.domain.com
访问该站点,这表明DNS记录可能已经存在了。。。如果是这样,就不需要改变。