【问题标题】:Redirect AJAX page requests to canonical links with .htaccess使用 .htaccess 将 AJAX 页面请求重定向到规范链接
【发布时间】:2023-03-24 19:02:02
【问题描述】:

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

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

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

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

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

谢谢!

【问题讨论】:

    标签: ajax regex .htaccess redirect hash


    【解决方案1】:

    我认为在服务器端不可能做到这一点。因为#后面的部分url没有包含在发送给服务器的请求中。

    【讨论】:

    • 我觉得可能是这种情况:
    【解决方案2】:

    我参加这个聚会可能有点晚了,但我也在调查这个。由于您的 url 已经包含 #!,而不是 #,因此您实际上可以这样做。 Google 会获取

    http://example.com/#!about
    

    作为

    http://example.com?_escaped_fragment_about
    

    因此,如果您对此使用重定向 301,并使用 javascript 重定向页面的仅限用户版本,您实际上已经达到了您想要的结果。

    我知道您要求使用无 JavaScript 解决方案,但我认为这是出于 SEO 的原因。更多信息请查看thisgoogle页面。

    编辑:

    <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.)
    

    我希望这会有所帮助!

    【讨论】:

    • 对于 SEO 而言,这实际上是一个不错的想法。不过,这不是我的意图(我要求非 JS 的原因是因为我想让网站对无 JS 的用户友好——我不需要用 JS 重定向用户,因为他们会得到 AJAX 页面,但是如果没有非 JS 重定向,没有 JS 的用户在链接到 example.com/#!about 时只会看到主页。不幸的是,它不可行,但我想这就是使用 AJAX 的代价。
    • 用户如何请求 url?如果他们来自书签,那么只需给他们无 JS 的链接?可惜PHP无法处理这个..
    • 嗯,来自书签,或来自其他链接它们的人(直接或以其他方式)。我想我要做的只是尝试通过提供“将此页面添加书签”/“到此页面的链接”链接来尽量减少没有 JavaScript 无法解析的链接,该链接将使用非 AJAX 链接。它不会解决问题,但应该有助于最大限度地减少问题的发生。
    • 我只是想到了这个,它是如此简单......元重定向,结合我提到的可抓取版本上的 301 重定向。我会更新答案...
    猜你喜欢
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    相关资源
    最近更新 更多