通过检测 URL 指定字符跳转链接

发布于 2022-08-28 00:35:38 字数 645 浏览 20 评论 0

想做一个个人博客的小功能做练习,想检测如这样的链接后缀:

http://example.com/?c=123123

通过 JS 来识别链接中的 ?c=123123 然后填转到指定链接,请问如何实现更好?谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

音盲 2022-09-04 00:35:38

直接就会跳转了,为何需要用JS判断?

如果是说通过query string来判断需要呈现的内容,前端可以做到,但相比比来,后端更适合做这样的工作。

http://example.com/?d=123123#abc

?以后到#之前,这段内容称为query string。而#以后,称为url hash(注意,这里的hash和hash算法的hash不一样)。

二者有区别:

名称地址形式前端的获取方法后端的获取在前端修改之后造成网络请求
url hash#…window.location.hash取不到不会
query string?a=&b=…window.location.search取得到是的

注意:

在前端:

  • 修改query string,会发起网络请求,页面会刷新,这时前端的上下文已经发生了改变。因此不建议用前端判断/修改query string
  • 修改url hash,不会发起网络请求,页面不会刷新,前端的上下文没有变化。

最好严格区分query string和url hash,query string用于后端判断,url hash用于前端判断。

因此:

  • 在后端,可以用query string判断需要呈现什么
  • 在后端,还可以构造这样的形式的地址做判断
    • http://example.com/c/123123
  • 在前端,用query string判断用以呈现的内容,不如用url hash判断用以呈现的内容(query string应该是后端的事情)。这样做,一般是用于区分:同一个页面,通过ajax来获取了不同的数据。用户可以粘贴这个地址到其他地方,依然可以回到用户当前所在的状态。

query string和hash的区别还可以看这个slideshare。(打不开?你懂得)

吹梦到西洲 2022-09-04 00:35:38

首先需要建立 关键字符串与对应网址的一一对应表,一般存储在数据库里面。

然后 根据请求字符串 查寻数据库 实施跳转。不需要利用js.

跳转可以直接使用 header(),也可以使用js.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文