使用javascript或jquery修改href-或-URL重定向/重写和模式匹配

Modify href -or- URL Redirect / Rewrite and pattern matching using javascript or jquery

本文关键字:重写 重定向 模式匹配 href- javascript jquery 修改 使用 -URL      更新时间:2023-09-26

我很难找到使用javascript进行模式匹配重定向/重写url的最佳方法。

背景:

我有一个按标签筛选的博客:http://adrtimesv6.squarespace.com/library/?tag=The+心理学+%26+神经科学+of+中介(如果出现,请选择视图作为访问者)

我在网站上有另一个名为"收藏"的区域,在那里我从图书馆的真实页面中加载一组帖子,其中包含在一个更受控制的环境中的其他内容,页面标题和URL更适合seo,如下所示:http://adrtimesv6.squarespace.com/collections/the-psychology-and-neuroscience-of-mediation.帖子是通过一个查询加载的,该查询从库中拉入具有与集合页面名称匹配的标记的帖子。这运行得很好。我遇到的问题是,当有人用标签过滤博客文章时,我希望它们重定向到收藏页面,而不是转到博客过滤页面。

问题:

我想知道的是如何使用jquery重定向所有/library/?tag=[path]urls到/collection/[path]url。要做到这一点,我认为我需要使用jquery来:

1) swap"/libary/?tag="to"/collections/"

2) 将路径的其余部分从标签格式的路径"the+Psychology+%26+Neuroscience+of+Mediation"修改为我的集合格式的路径:"中介的心理学和神经科学"

附加信息:

我使用的是CMS,所以我无法访问.htaccess文件。在CMS管理设置中有一个url重定向面板,它允许我以以下格式列出一些基本重定向:->。。。但是尝试使用标签过滤器url是不起作用的。

我最关心的是当用户点击博客文章底部列出的标签时发生的重定向,所以我可以使用jquery修改博客文章列出的标签中的href属性。只是不知道如何正确地编写模式匹配和重写格式。我试了很多东西,但似乎都做不到。

或者以某种方式使用window.location.remove?

更新:在我的特殊情况下,我发现我可以更新我的模板代码和json格式器,以便生成的标记链接href与集合部分中的url匹配,这样我的问题就解决了。。。。然而,我仍然想知道在其他情况下我该如何处理。

基本上,1)如何使用javascript或jquery来检查url(页面上的href或浏览器url)是否包含某些内容,然后用其他内容替换,然后修改完整的url,使其成为一个简单的虚线url。。。。取出所有+符号并将其替换为-,并删除&字符返回一个简单的url字符串等,如:/这里是路径

在单个页面上,您可以使用它将访问者转发到新页面:

window.location = "http://www.google.com"

您可以添加逻辑,以便在每个页面上使用相同的脚本。例如:

if ( document.location == "http://adrtimesv6.squarespace.com/library/?tag=The+Psychology+%26+Neuroscience+of+Mediation" ) {
  window.location = "http://adrtimesv6.squarespace.com/collections/the-psychology-and-neuroscience-of-mediation"
}

等等。你甚至可以添加更多的高级字符串操作来处理每个URL。

但是以这种方式进行JavaScript重定向将不会产生积极的SEO效果,例如友好的URL。它将使您的web服务器能够处理新的URL;如果http://adrtimesv6.squarespace.com/collections/the-psychology-and-neuroscience-of-mediation从您的web服务器返回一个错误,再多的前端JavaScript也无法修复。

使用JavaScript执行此操作对用户来说可能是一种负面体验,因为他们必须首先从第一个URL下载页面,然后执行JavaScript,然后从新URL下载页面。