我知道有很多这样的问题,但我找不到合适的答案。
我在一个与虚拟主机共享的shell上。
我有一个子域-- "xyz.abc.com“。问题是,当我输入额外的"www.“在它之前,即"www.xyz.abc.com",它重定向到托管外壳的根网站,即"www.abc.com“,而不是打开"xyz.abc.com”。
我已经联系了管理员。他说,他不能改变重定向设置,因为他将不得不重写2000行APACHE服务器代码。
我尝试更改public_html目录中的.htaccess文件,即“/public_html/usr/public_html/.htaccess”,以包含以下内容:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]这无济于事。
我尝试在“/ .htaccess /usr/.htaccess”添加一个主目录。这也不起作用。
我不能在"/home“添加任何文件。
对于管理员来说有什么简单的方法吗?来改变这个重定向问题。
Most people tend to add a "www." before any web address.发布于 2011-12-04 14:44:52
默认的虚拟主机(在本例中,显然是abc.com的主站点)将是服务器收到请求但不知道的域名的应答。在您的情况下,服务器知道xyz.abc.com转到您的站点。然而,它从未听说过www.xyz.abc.com。既然没有,请求就转到默认站点,默认站点可能会执行自己的301操作,以跳转到它期望的站点(显然是www.abc.com)。
为了解决这个问题,假设主机不愿意为您修改他们自己的网站(当然,假设域名www.xyz.abc.com指向与xyz.abc.com相同的服务器),需要有人将www.xyz.abc.com或*.xyz.abc.com添加到您站点的域别名列表中。如果服务器被很好地设置为托管,那么在该站点的配置中就有一行(ServerAlias *.xyz.abc.com)。2000行相当于一个完整的中小型容量web服务器的Apache配置,包括十几个基于名称的虚拟主机。如果管理员没有夸大其词,那么他们基本上是在告诉你,服务器并不是为真正的企业级虚拟主机而设置的--他们可能正在做一件不能为个人用户量身定做的俗气的批量虚拟主机的事情。
如果你不能让管理员为你修复服务器别名,一种替代方案是从提供"URL转发“的注册商那里为自己获取一个域名。当正确设置时,这会将你的域名指向一个简单地重定向到xyz.abc.com的站点。这看起来有点丑陋,但只要站点内的所有链接都指向xyz.abc.com (一些网址转发器可能不会注意到网址的资源部分,可能会将所有内容重定向到/),它就可以正常工作。而且它不需要管理员做任何事情。
https://stackoverflow.com/questions/8370052
复制相似问题