重定向另一个域而不在地址栏中显示第一个域的URL

时间:2017-08-01 21:46:25

标签: php html5 .htaccess redirect google-chrome-extension

我想立即重定向用户,当他们点击我的链接(例如abc.com/redirect)到另一个域ex(xyz.com)时。

但我不想向用户显示有关第一个网址的任何信息(abc.com/redirect)

我用

<meta http-equiv="refresh" content="0;url=xyz.com">

但它首先显示abc.com/redirect,然后重定向。有没有办法不显示abc.com?

我使用javascript / php / html / .htaccess,但所有这些都显示第一个url(abc.com/redirect)。我开发了一个重定向网址的chrome扩展名(例如xyz.com)但我有时需要更改我的重定向网址(如xyz2.com),

所以我将我的扩展点击事件重定向到abc.com/redirect,此url将用户发送到xyz.com。但我不想向用户显示abc.com/redirect

我改变了我的算法。首先,我使用带有JavaScript的GET方法从abc.com/redirect.html获取URL,然后使用xyz.com URL打开新选项卡。因此用户无法看到abc.com/redirect.html。谢谢你的所有答案,我解决了我的问题。

4 个答案:

答案 0 :(得分:1)

PHP header()函数提供了一个名为Location:的功能。这会将您重定向到任何网址,而不会显示您的网址。同时查看documentation

header('Location: http://example.com');

答案 1 :(得分:0)

使用htaccess,您可以执行以下操作:

<IfModule mod_rewrite.c>

    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC,OR]
    RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
    RewriteCond %{REQUEST_URI} ^/redirect/?$
    RewriteRule ^.*$ http://destination.com/ [R=301,L]

</IfModule>

这将重定向http://example.com/redirect,但不会重定向http://example.com

由于SO:/

的限制,我不得不使用example.com和destination.com

答案 2 :(得分:0)

或者为了更快的重定向,请使用apache config:

<VirtualHost *:80>
  ServerName DomainA
  Redirect permanent / http://DomainB/
</VirtualHost>

答案 3 :(得分:0)

我认为标准重定向始终会显示少量链接。在没有中间URL的情况下重定向的一种方法可能是使链接成为一个表单的提交按钮,该表单发布到带有标题的PHP文件(位置:__)。

<form action="redirect.php" method="post">
  <button type="submit">Link</button>
</form>

然后redirect.php看起来就像..

<?php header('Location: example.com'); ?>

这将重定向,不显示任何中间URL。如果无法使用按钮,您可以查看jQuery.post,您可以将其挂钩到锚标记。

http://api.jquery.com/jQuery.post/