繁体   English   中英

如何更正重定向到HTML页面中的任何URL?

[英]How to correct redirect to any url from within a HTML page?

当然,我知道如何从HTML内重定向到任何网址,例如

<meta http-equiv="refresh" content="0; url=http://example.com/" />

要么

<!DOCTYPE HTML>
<html lang="en-US">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="refresh" content="1; url=http://example.com">
        <script type="text/javascript">
            window.location.href = "http://example.com"
        </script>
        <title>Page Redirection</title>
    </head>
    <body>
        <!-- Note: don't tell people to `click` the link, just tell them that it is a link. -->
        If you are not redirected automatically, follow this <a href='http://example.com'>link to example</a>.
    </body>
</html>

但是我想知道的是,这是尝试像bit.ly那样进行重定向时如何做到的正确方法。 我提问的目的是什么?

我为多个服务(例如Skype for Business Meeting,GoToMeeting,HRS酒店预订,其他预订页面等)提供了许多静态URL。其中所有都在Url中包含任何ID /标记,需要正确键入才能获得正确的服务。 例如,在Skype会议上,我将此URL提供给我的同事/客户。 我想要做的是在域上添加一些static.html

www.my.dom/skype

并将这个网址提供给我的客户,以便于记住和输入。

因此,我的问题是:

这是拥有静态重定向URL的正确方法,也许不会被AntiVirus软件,浏览器安全检查等阻止。原因我不希望用户在重定向期间收到任何错误消息。

通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在DOCUMENT_ROOT目录下的.htaccess中:

# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} (^|&)title=abc(&|$) [NC]
RewriteRule ^a/b/(.*)$ http://www.example.com/xyz/? [L,R=302,NC]

请记住,RewriteRule与斜杠不匹配。

确认其工作正常后,将R = 302替换为R = 301。 在测试mod_rewrite规则时,避免使用R = 301(永久重定向)。

您还可以使用303状态代码。 优点是它也适用于POST请求:

https://en.wikipedia.org/wiki/HTTP_303

请求:

POST / HTTP/1.1
Host: www.example.com

响应:

HTTP/1.1 303 See Other
Location: http://example.org/other

关于“正确的方法是什么”:任何适合您需求的方法。 HTML标记/属性的存在表明它是正确的,服务器响应代码也是如此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM