我遇到了一个电子商务网站,只要在产品列表页面上应用了过滤器,就会执行以下操作:
例如,当您点击"子类别= 2" (链接到href =" / productcategory / category1 / subcategory2")在产品列表页面上" www.example.com/productcategory/category1"
地址栏中显示的URI已更改为模拟过滤器请求,而不重新加载整个页面。即" www.example.com/productcategory/category1/subcategory2"
根据应用的过滤器,ajax调用仅重新加载页面的一部分,即显示带有子类别= 2的产品。
但是当你输入" www.example.com/productcategory/category1/subcategory2"在地址栏中,照常重新加载新页面。
我无法使用重写规则实现此特定行为,因为每当我点击带有href =" www.example.com/productcategory/category1/subcategory2"的链接时;它根据重写规则重定向,并重新加载整个新页面。
我的问题: 1.如何更改地址栏中的URL但不重新加载页面? 2.是否可以设置重写规则,只有当您在地址栏中明确输入网址并按Enter键时才重定向页面?
答案 0 :(得分:-1)
要更新浏览器显示的网址,而不重新加载网页,您可以使用JavaScript History API - 示例here。
我不清楚您的问题的第二部分是什么意思,当Web服务器收到请求时,应用重写规则 - 服务器不知道/关心请求是如何被触发的,但是如果您正在使用History API更新浏览器中的URL,然后没有请求被发送到服务器,这纯粹是一个浏览器内操作。