【问题标题】:Redirect through a subdomain通过子域重定向
【发布时间】:2019-06-17 08:28:12
【问题描述】:

有没有办法通过子域重定向屏蔽或未屏蔽的外部链接? (无外部链接插件会屏蔽链接;屏蔽和未屏蔽的链接不会同时显示在页面上)

看下面的例子,我要重定向 如果链接被屏蔽(启用插件):

example.com/go/externalexample.com/newstitle/ (links showing internal with MozBar)

rd.example.com/go/externalexample.com/newstitle/ (links showing external with MozBar)

如果链接没有被屏蔽(禁用插件):

externalexample.com/newstitle/ (external link on homepage, links showing external with MozBar)

rd.externalexample.com/newstitle/ (links showing external with MozBar)

谢谢

【问题讨论】:

  • 问题的“蒙面”部分在哪里发挥作用?
  • example.com/go/externalexample.com 这是一个屏蔽链接。我想问题是每个外部链接是否被屏蔽。我已经更新了问题。
  • 你写了 If links are not masked: 示例是 "externalexample.com",但是那个链接用于不同的域
  • 这是放置在我的 example.com 网站(新闻聚合器)上的外部链接
  • 为什么是 rd/externalexample.com 而不是 rd.externalexample.com?

标签: javascript php mod-rewrite url-rewriting url-redirection


【解决方案1】:

我不认为你可以“抓住”离开网站的人(然后改变它),(AFAIK)。

但使用 javascript (Jquery) 您可以更改网站上的所有链接

您可以将带有href 属性的所有链接<a> 更改为:

$('a').each(function(){
    var url = $(this).attr('href');
    var url = url.split("://").join('://rd.');
    $(this).attr('href', url);
});

此代码将在 :// 上拆分 url 并将 ://rd. 放在它的位置 (我选择:// 的原因是因为您可能不会在 url 的其他任何地方拥有它,而且它也适用于非 http 链接)

【讨论】:

  • 我应该如何测试这个?
  • 我上面写的代码将每个链接更改为:“rd.old_link”。因为您询问了屏蔽链接,但未屏蔽和屏蔽的结果是相同的。如果您的网站使用 Jquery,您可以将其粘贴到 .php.html 文件中的 <script> 标签中
  • 我在页脚中添加了这个脚本,它在 https:// 之前添加了 rd 子域是否可以将其添加为 rd.example.com
  • 如果我单击链接,它会给出 404。代码添加了 2 个 rd 实例,如下所示:rd.example.com/go/rd.externalexample.com/newstitle/ 这些链接也显示为内部链接,而不是我想要的外部链接。
  • 在您的示例中,第二个网址中没有任何 https:// 。你能展示一个你实际使用的例子吗?这会有所帮助。
【解决方案2】:

对不起。我很着急,应该更具体。

我知道在 PHP 中重定向 url 的唯一方法是通过 this post 中提到的标头函数。

这将允许您设置一个可以设置为虚拟重定向页面的页面“foo.php”:

<?php
$url = $_GET["url"];

// Do stuff...

// Later...
header("Location: http:://$url", true, 301);

然后让 HREF 实际上指向 foo?url=my_URL。

但是,如果您对使用 PHP 不是很执着,您可以尝试查看 .htaccessmod_rewrite,这可能更强大,并且可以按照您的实际需要做。

【讨论】:

  • 如果我错了,请纠正我,但我认为 mod_rewrite 只适用于您自己的服务器,它不适用于您点击到外部服务器的链接。
  • 你没有错。但是,据我所知,您可以将指向服务器的链接重写为指向外部服务器的链接。我从来没有尝试过。我认为这就是 OP 所要求的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-21
  • 2016-09-24
  • 2014-09-29
  • 2011-09-17
  • 2015-06-03
  • 2012-06-01
相关资源
最近更新 更多