仅将外部网址重定向为查询字符串
我试图通过php文件将外部网站的网址设置为变量来重定向所有外部链接。仅将外部网址重定向为查询字符串
例子。如果我的网站(mysite.com)有一个链接到google.com/results/1234
我想自动重写url的东西linke mysite.com/external.php?p=google.com/results/1234.
我想要一个htaccess的解决方案,因为我无法更改与外部URL相关的文件没有影响网站上的其他网站。
我不想用mysite.com重定向任何链接。
如果有人能指引我正确的方向,我会非常感激。
通过.htacess文件不可行。 .htaccess只能重写带有解析到您的Web服务器的域名的传入URL。它无法控制外发URL,因为这些请求会直接发送到外发Web服务器(在您的示例中,google.com)。
您可能需要的是一种脚本解决方案,通过挂接所有链接的onclick
事件,根据需要重定向用户。
编辑:这是使用jQuery的概念的快速证明。这应该让你开始。
<html>
<head>
<title>jQuery global redirector</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<a href="http://google.com/search?q=jquery">google url would redirect</a><br />
<a href="http://mysite.com/somepage.php">mysite.com url won't redirect</a>
<script>
<!--
$("a").click(function(e) {
var url = e.target.href;
if(!(url.startsWith("http://mysite.com") || url.startsWith("mysite.com"))) {
window.location.href = "http://mysite.com/redirect.php?site=" + url;
e.preventDefault();
}
});
//-->
</script>
</body>
</html>
你或许应该把脚本另一个文件中(说redirect.js),然后包括这个脚本(附近的< HTML>结束)选择在页面中需要这样的重定向。别忘了导入jQuery!
谢谢Ravi提供这个解决方案!我没想过要用jQuery。你对这个技术如何影响SEO有什么看法?我想知道当机器人访问该网站时,是否仍有机会通过硬编码链接发生泄漏。 – 2013-04-26 05:21:33
这既不会推高或降低排名。从搜索引擎优化的角度来看,“”文本保持完全一样 - 文章中的链接等保持不变。事实上,你的链接标签甚至没有被触及(像添加一个onclick =“”处理程序给他们),这就是jQuery的美丽。 – 2013-04-26 05:36:05
一旦生成外出链接,您就无法控制它们。它们的来源,即在您的网站内部生成它们的代码,可能会被修改,但在您的问题中缺少。 – 2013-04-26 02:56:28
这真的很有意义。谢谢faa – 2013-04-26 05:22:19