【问题标题】:How to 301 redirect a static url to another static url?如何 301 将一个静态 url 重定向到另一个静态 url?
【发布时间】:2020-05-08 12:16:02
【问题描述】:

我的网站是 HTML/CSS/JS 网站,没有位于 MS Azure 上的服务器(静态网站)。 我最近更改了 2 个这样的 html 文件:

www.mydomain.com/oldfile1.html

www.mydomain.com/oldfile2.html

www.mydomain.com/newfile1.html

www.mydomain.com/newfile2.html

考虑到网站是静态的,.htaccess 不起作用,并且似乎在 html 文件中使用元标记不被视为 301 永久重定向,我如何为 SEO 重定向旧网址?!

【问题讨论】:

    标签: html redirect http-status-code-301


    【解决方案1】:

    301 重定向是服务器端指令。

    在文件到达浏览器之前,浏览器无法读取您放在客户端文件 (<meta> / javascript) 中的任何内容。

    此时执行服务器端指令为时已晚

    您现在将浏览器指向您试图将其指向远离的目的地。

    【讨论】:

    • 我该怎么办?
    • 由于.htaccess 不适合您,您有两种选择:a) 通过 PHP 引入服务器端重定向(可以是 301);或 b) 通过<meta http-equiv> 或 javascript(不能是 301)添加客户端重定向。
    【解决方案2】:

    可能不是最佳答案,但您可以更改旧文件的 html 以重定向到新文件。

    所以是这样的:

    <html>
      <head>
        <!--Tells search engines to not index this page-->
        <meta name="robots" content="noindex">
        <!--Redirect to new resource-->
        <meta http-equiv="Refresh" content="0; url=www.mydomain.com/newfile1.html">
      </head>
      <body>
        <!--In case both JavaScript and the meta tag fail-->
        <p>If you aren't automatically redirected please follow<a href="www.mydomain.com/newfile1.html">this link</a>.</p>
        <script>
           //JavaScript fallback if browser does not support/allow http-equiv="Refresh"
           window.location = 'www.mydomain.com/newfile1.html'
        </script>
      </body>
    </html>
    

    【讨论】:

    • 注意:&lt;meta&gt; 标签在 HTML 中不使用也不需要结束斜杠,而且从来没有。
    • 正确,但归结为个人喜好。
    • 不是。没有 HTML 规范显示对此的任何要求。事实上,标准明确规定斜杠没有任何意义,它什么也不做,并指示浏览器忽略它。
    • OP: "[...] 在 html 文件中使用 meta 标签不被视为 301 永久重定向"
    • 因为他的原因是为了SEO,他可以添加&lt;meta name="robots" content="noindex"&gt;标签,这会导致most搜索引擎不索引页面,就像most 搜索引擎不会索引 301 个页面。
    猜你喜欢
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多