使用.htaccess将AJAX页面请求重定向到规范链接

时间:2011-05-21 10:20:34

标签: ajax regex .htaccess redirect hash

我正在编写一个网站,该网站大量使用AJAX为使用JavaScript的用户加载页面,但我也希望它对于禁用或禁用JavaScript的用户友好。我已经涵盖了所有的基础知识;例如,我的所有链接都指向规范链接,JavaScript通过AJAX加载它们。因此,我的“关于”页面位于/ about /,但会加载到主页面上,一旦完成,将使用hash / hashbang链接启用后退按钮功能。

这就是我遇到的问题:虽然使用JavaScript的用户尝试将没有它的人链接到页面,但是哈希/ hashbang链接将能够用于通过AJAX链接到特定页面,使用AJAX无法为该人加载页面。

因此,如果可能的话,我希望能够使用.htaccess将hash / hashbang指定的页面重定向到规范链接。换句话说,与this contributer was trying to achieve完全相反。

  

http://example.com/#!about - > http://example.com/about/

是否可以使用.htaccess,或者没有 JavaScript?如果是这样,怎么样?

谢谢!

2 个答案:

答案 0 :(得分:2)

我认为不可能在服务器端执行此操作。因为#之后的url部分未包含在发送给服务器的请求中。

答案 1 :(得分:1)

在这个问题上我可能会迟到一点,但我也在研究这个问题。由于您的网址已包含#!而不是#,因此您实际上可以执行此操作。谷歌将获取

http://example.com/#!about

作为

http://example.com?_escaped_fragment_about

因此,如果您在其上使用重定向301,并使用javascript重定向仅用户版本的页面,那么您几乎已达到所需的结果。

我意识到你要求一个没有javascript的解决方案,但我认为这是出于SEO的原因。有关详情,请参阅谷歌的this页面。

编辑:

<meta http-equiv="refresh" content="5; url=http://example.com/">

关于元刷新here的更多内容。

有:

1) Does not require javascript!

-

2) Can be Seo friendly!

-

3) Works with bookmarks and history (etc.)

我希望这有帮助!