我想将旧网站网址重定向到新网址网址。我在.htaccess文件中写了一个重定向规则。但问题是,我的旧网址包含url参数之间的哈希标记。
Redirect /de/home/#/de/about/blog/ https://www.example.com/about/blog/
我尝试的所有内容都会忽略哈希标记,并且根本不会重定向。我的旧域名具有相同的主机,重新设计后,网址会有一些变化。这就是我想重定向旧网址的原因。
如果使用htaccess无法实现,还有其他方法可以实现吗?
或者我可以通过匹配网址的部分来使用没有哈希的网址吗? 我的意思是像这样重写;
重定向/(*)/ de / about / blog / https://www.example.com/about/blog/
你能帮我吗?提前谢谢。
答案 0 :(得分:3)
片段标识用于标识文档的一部分,它完全由客户端处理,永远不会发送到服务器。
基于它的重定向的唯一方法是使用客户端JavaScript。
答案 1 :(得分:2)
您需要在客户端进行重定向:
if (window.location.hash == "#/de/about/blog/") {
window.location = 'http://google.com.ua';
}
答案 2 :(得分:1)
使用htaccess是不可能的。来自#
( URL片段)的所有内容都不会发送到服务器。唯一的方法是使用JavaScript,这是很多人don't like hashbang的原因之一。
一旦你好了,你就不能回去了。这可能是最棘手的 问题。 Ben的帖子提出了当pushState更多的时候 广泛采用然后我们可以留下hashbangs并返回 传统的URL。嗯,事实是,你做不到。早些时候我说过URL 它们是永远的,它们被索引和存档并且通常被保留。 除此之外,酷网址不会改变。我们不想断开连接 我们自己与我们内容的所有宝贵链接。如果你的话 在任何时候实现hashbang URL然后想要更改它们 没有断开链接,你可以做到的唯一方法是运行一些 您域名根文档上的JavaScript。永远。它没有 暂时的,你坚持下去。
您可以在此处找到一些有用的信息:What's the shebang/hashbang (#!) in Facebook and new Twitter URLs for?