使用javascript自定义URI

时间:2014-12-03 11:54:34

标签: javascript mod-rewrite

我遇到了一个电子商务网站,只要在产品列表页面上应用了过滤器,就会执行以下操作:

例如,当您点击"子类别= 2" (链接到href =" / productcategory / category1 / subcategory2")在产品列表页面上" www.example.com/productcategory/category1"

  1. 地址栏中显示的URI已更改为模拟过滤器请求,而不重新加载整个页面。即" www.example.com/productcategory/category1/subcategory2"

  2. 根据应用的过滤器,ajax调用仅重新加载页面的一部分,即显示带有子类别= 2的产品。

  3. 但是当你输入" www.example.com/productcategory/category1/subcategory2"在地址栏中,照常重新加载新页面。

    我无法使用重写规则实现此特定行为,因为每当我点击带有href =" www.example.com/productcategory/category1/subcategory2"的链接时;它根据重写规则重定向,并重新加载整个新页面。

    我的问题: 1.如何更改地址栏中的URL但不重新加载页面? 2.是否可以设置重写规则,只有当您在地址栏中明确输入网址并按Enter键时才重定向页面?

1 个答案:

答案 0 :(得分:-1)

要更新浏览器显示的网址,而不重新加载网页,您可以使用JavaScript History API - 示例here

我不清楚您的问题的第二部分是什么意思,当Web服务器收到请求时,应用重写规则 - 服务器不知道/关心请求是如何被触发的,但是如果您正在使用History API更新浏览器中的URL,然后没有请求被发送到服务器,这纯粹是一个浏览器内操作。