【问题标题】:Redirecting another domain without showing first domain's url in address bar重定向另一个域而不在地址栏中显示第一个域的 url
【发布时间】:2017-08-01 21:46:24
【问题描述】:

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

但我不想向用户展示有关第一个 url(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 扩展来重定向一个 url(例如 xyz.com),但有时我必须更改我的重定向 url(如 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。感谢所有答案,我解决了我的问题。

【问题讨论】:

  • 改用 htaccess 重定向
  • 我使用 javascript/php/html/.htaccess 但它们都显示第一个 url(abc.com/redirect) 我开发了一个 chrome 扩展来重定向一个 url(ex.xyz.com) 但我有时必须更改我的重定向 url(如 xyz2.com),所以我将我的扩展点击事件重定向到 abc.com/redirect,这个 url 将用户发送到 xyz.com。但我不想显示用户 abc.com/redirect

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


【解决方案1】:

PHP header() 函数提供了一个名为Location: 的功能。这会将您重定向到任何 URL,而不会最初显示您的 URL。也检查documentation

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

【讨论】:

  • 感谢您的回答!我也尝试了 php header 但它显示 abc.com/redirect.php
  • 注意:如果您使用这种方法,为了让 SEO 工作,您应该包含 301 永久重定向代码: header("Location: example.com",true,301);
【解决方案2】:

使用 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 :/

【讨论】:

  • 感谢您的回答!我也尝试了 .htaccess 重定向,但它会显示 mydomain.com/redirect 片刻。我开发了一个 chrome 扩展来重定向一个 url(例如 xyz.com),但有时我必须更改我的重定向 url(比如 xyz2.com),所以我将我的扩展点击事件重定向到 abc.com/redirect 并且这个 url 发送用户到 xyz.com。但我不想显示用户 abc.com/redirect
【解决方案3】:

或者为了更快的重定向,使用 apache 配置:

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

【讨论】:

    【解决方案4】:

    我认为标准重定向总是会显示少量链接。在没有中间 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/

    【讨论】:

      猜你喜欢
      • 2021-04-24
      • 2017-11-23
      • 1970-01-01
      • 2011-06-19
      • 2014-01-18
      • 2015-10-17
      • 2020-10-01
      • 2014-01-10
      • 1970-01-01
      相关资源
      最近更新 更多