忽略/绕过.htaccess时使用history.pushState(替代解决方案欢迎)

时间:2015-05-14 16:49:01

标签: html ajax .htaccess

我要做的是有一个动态文件,它接受一个影响内容的参数(/view.html?k=about),但使用history.pushState将URL更改为更加用户友好的内容(ki) /关于)。此外,只要在content.html上进行AJAX调用以加载新内容,它就会根据(例如,如果通过AJAX加载产品,将URL更改为关键字/产品)来更新URL。

My current solution with desired result

我目前的解决方案是从ki请求的任何路径都通过.htaccess重定向到view.html页面。然后view.html使用history.pushState来更改URL。点击链接后,URL会更新。然而,问题在于它会导致无限循环。

enter image description here

这是我的.htaccess文件,位于/ ki /文件夹中。

RewriteEngine on
RewriteRule ^(.*)$ /concept/view.html?k=$1 [R=permanent,L]

我能做些什么才能获得理想的结果?如果有一种方法可以在没有.htaccess文件的情况下实现相同的目标,那么这也是可以接受的。

1 个答案:

答案 0 :(得分:1)

您将要在幕后重写任何以ki / about形式出现在/view.html?k=关闭的网址。

history.pushState实际上只是用于像Spotify那样不重新加载页面的Web应用程序,但仍然可以让后退按钮具有某些功能。 这样,可以在不提供404页面的情况下共享URL。

我没有测试过这个,但我确定你想要这样的东西

RewriteRule ^ki/([A-Za-z]+)/$ /view.html?ki=$1

如果用户输入了丑陋的网址,他们仍会在同一页面上找到问题。但漂亮的网址会将用户引导至正确的网页。

有关详细信息,请访问此处。 http://www.yourhtmlsource.com/sitemanagement/urlrewriting.html