2010-02-22 73 views
1

我有一个域别名,我想转发到我的主站点上的特定目录。 如何获取它,以便只有访问别名“fakesite.com”的用户才能重定向到“mainsite.com/fake”,而不是所有人都重定向到该用户?如何选择性重定向?

+0

你不能改变别名的重定向到mainsite.com/fake吗? – glasnt 2010-02-22 22:31:33

+0

这取决于你的服务器。本质上,您以不同方式配置该虚拟主机。 – Quentin 2010-02-22 22:34:35

+1

这种类型的问题属于serverfault.com。另外,当您重新发布它时,请包括有关您正在使用的Web服务器,操作系统等的信息。 – mjv 2010-02-22 22:36:34

回答

1

如果你使用Apache,建立fakesite.com为虚拟主机和您的fakesite.com配置的.htaccess:

Redirect/http://mainsite.com/fake 
1

真的没有办法做到正是这在纯HTML (如:meta标签或类似的东西)。但是,您可以尝试检查location中的JavaScript(检查位置是否与假域相关并重写它,这会重定向浏览器),但如果客户端启用了JavaScript,则会重定向客户端。

但是如果您的Apache使用mod_rewrite,则可以轻松地完成此操作。

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(.*\.)?fakesite\.com$ [NC] 
RewriteRule ^/(.*)$ http://www.mainsite.com/fake/$1 [L,R=301] 

你可以把它放在你的虚拟主机定义文件(sites- *目录)中。当然,只有当域解析为虚拟主机运行的IP时,它才会起作用。

您还可以进一步自定义此规则(关于如何编写重写规则,有几个很好的教程),例如,在浏览器中保留伪造的URL,而不是发送带有“新”位置的301重定向代​​码。

如果你有PHP提供的假网站的服务器上,你可以重写对脚本发送以下标题到客户端的所有传入的请求到一个脚本:

<?php header('Location: http://www.newsite.com/fake'.$_SERVER['REQUEST_URI']); ?> 

否则(如Pekka指出)在的meta-refresh HTML当然是最后的手段。重定向到新的根目录而不是新服务器上的请求页面是不好的形式,并且会影响访问者数量(令人困惑的访问者不愉快的访问者)和Google页面等级。

如果你正在谈论走样,而不是重定向(即提供主网站上的目录提供给用户访问假网站的内容),但是,你可以简单地创建了假冒的域中的虚拟主机(相同的要求适用于mod_rewrite示例),并将文档根设置为其他域的文档根目录。如果两个域名在不同的服务器上,这显然不起作用。

如果你实际上并不拥有主站点或用不上它,你很可能建立一个脚本(如PHP)到HTML iframe源设置为真实网址,只是显示包含该iframe的页面;或者更干净的副本:从脚本中的真实服务器中读取请求的内容并输出该内容(但是,如果要将用户保留在假冒的站点上,则必须更正加载的HTML中的所有URL) 。

只要注意这种“代理”可能违反了其他网站的服务条款(或者他们可能会禁止您的服务器的IP)。

0

在可用时重写URL始终是更好的选择,但我不明白为什么元重定向会放在fakesite.com的索引​​上。HTML,是行不通的:

<html> 
<head> 
<title>Add title here</title> 
<meta http-equiv="refresh" content="0;url=http://www.mainsite.com/fake"> 
</head> 
<body> 
some content 
</body> 
</html> 

这种方法的美女可以有争议(一定要还与重定向消息和链接装备页面mainsite.com/fake手动点击),但它应该尽管如此。

+0

这有几个问题。一方面,它打破了“fakesite.com”的所有现有网址(通过解析为“404”或为所有请求提供相同的元重定向)。你基本上是以这种方式进行SEO自杀。另一个问题是,只有在页面到达浏览器后触发元刷新,才会执行元刷新(浏览器无法自动执行此操作,并且重定向中断页面总是感觉不专业)。如果你想保持假的URL可见,它也没有帮助(请参阅:代理)。 – 2010-02-22 23:04:54

+0

@Alan你假设SEO在这里是一个问题,并且之前的域名与完整的URL结构一起使用,这两者都不一定是这种情况。正如我所说,重写总是更好的选择,但如果它不可用,重定向是唯一剩下的。 – 2010-02-22 23:22:29

+0

SEO始终是网站的一个问题。如果你让所有的链接腐烂,你不仅会让很多访问者感到困惑(即离开),还需要等待新的链接获得体面的地位。如果SEO是最重要的考虑因素,那么域名根本不会改变。另外,服务器端脚本语言已经足够普及,以至于如果修改虚拟主机不是一种选择,那么可以使用它们来创建重定向(通过“位置”标题,而不是间歇页面)是一个安全的假设。 – 2010-02-23 11:40:31