如何 301 将一个静态 url 重定向到另一个静态 url?
Posted
技术标签:
【中文标题】如何 301 将一个静态 url 重定向到另一个静态 url?【英文标题】:How to 301 redirect a static url to another static 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 重定向旧网址?!
【问题讨论】:
【参考方案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>
【讨论】:
注意:<meta>
标签在 HTML 中不使用也不需要结束斜杠,而且从来没有。
正确,但归结为个人喜好。
不是。没有 HTML 规范显示对此的任何要求。事实上,标准明确规定斜杠没有任何意义,它什么也不做,并指示浏览器忽略它。
OP: "[...] 在 html 文件中使用 meta 标签不被视为 301 永久重定向"
因为他的原因是为了SEO,他可以添加<meta name="robots" content="noindex">
标签,这会导致most搜索引擎不索引页面,就像most 搜索引擎不会索引 301 个页面。以上是关于如何 301 将一个静态 url 重定向到另一个静态 url?的主要内容,如果未能解决你的问题,请参考以下文章