打开没有JS的新选项卡的所有外部链接

时间:2014-05-14 13:39:58

标签: php html .htaccess

我想知道是否有可能通过htaccess或其他方式(但不是JS)来使所有外部链接(与域无关的链接)在新选项卡中打开(target =“_ blank”)。

这甚至可能吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

您在页面中生成的任何链接(我假设您使用PHP生成页面),只需执行

if (strpos($link, 'yourdomain.com') === false)
{
  //append your target="_blank" to the link here  
} 

然后,您正在搜索您所在域的链接,如果该域名不在您的域中,请在新标签页中将其打开。

请参阅http://us1.php.net/strpos

答案 1 :(得分:1)

只有3种方法来决定这一点:

  • 目标属性
  • JS​​
  • 浏览器设置或插件(取决于您使用的浏览器,大多数使用JS)

如果你不想使用JS,那么你几乎只剩下目标了。您可以自动插入"#34;通过PHP / Ruby / Python / Java-Code(无论您用什么来生成HTML),都可以使用搜索和替换功能。 如果你自己编写HTML,那么你可以手动为每个链接设置它。

我认为没有理由为什么你需要更多的选择,但是如果你这样做:你已经搞砸了。

浏览器无法查看.htaccess,而您的服务器只提供HTML文件。它无法控制它们的处理方式。浏览器决定使用它(这是您可以建议所有用户安装插件来执行此操作的地方)。

答案 2 :(得分:1)

CSS3属性就在那里。

a
{
target-name:new;
target-new:tab;
} 

But unfortunately, it's not supported by any browser.