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

发布于 2024-11-08 20:01:10 字数 794 浏览 0 评论 0原文

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

我遇到的问题是:虽然使用 JavaScript 的用户可以使用 hash/hashbang 链接通过 AJAX 链接到特定页面,但如果使用 JavaScript 的用户尝试将没有该链接的人链接到该页面,则该页面无法被访问。使用 AJAX 为该人加载。

因此,如果可能的话,我希望能够使用 .htaccess 将 hash/hashbang 指定的页面重定向到规范链接。换句话说,这与此贡献者试图实现的目标完全相反。

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

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

谢谢!

I'm coding a site that makes heavy use of AJAX to load pages for users with JavaScript, but I also want it to be friendly for users with JavaScript disabled or unavailable. I've covered all the basics; for example, all my links point to canonical links, and JavaScript loads them via AJAX. My "about" page, therefore, is located at /about/, but will load on the main page and will, once finished, utilize hash/hashbang links to enable back-button functionality.

Here's the problem I have: while a hash/hashbang link will be able to be used to link to a specific page via AJAX for users with JavaScript, if a user with JavaScript attempts to link someone without it to the page, the page cannot be loaded for that person using AJAX.

As such, I'd like to be able, if possible, to use .htaccess to redirect hash/hashbang-specified pages to the canonical link. In other words, the exact opposite of what this contributer was trying to achieve.

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

Is it possible with .htaccess, or otherwise without JavaScript? If so, how?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

网白 2024-11-15 20:01:10

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

I don't think it's possible to do this on server side. Because the part of the url after # is not included in the request sent to the server.

黯淡〆 2024-11-15 20:01:10

我可能来晚了一点,但我也在研究这个。由于您的 url 已经包含 #!(而不是 #),因此您实际上可以执行此操作。 Google 将获取

http://example.com/#!about

http://example.com?_escaped_fragment_about

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

我知道您要求一个无 JavaScript 的解决方案,但我认为这是出于 SEO 的原因。有关详细信息,请参阅 Google 提供的页面。

编辑:

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

有关元刷新的更多信息此处

它:

1) Does not require javascript!

-

2) Can be Seo friendly!

-

3) Works with bookmarks and history (etc.)

我希望这有帮助!

I might be a bit late to the party on this one, but i'm looking into this too. Since your url already contains the #!, as opposed to #, you can actually do this. Google will fetch

http://example.com/#!about

as

http://example.com?_escaped_fragment_about

Therefore, if you use a redirect 301 on that, and use javascript to redirect the user only version of the page, you have practically reached your desired result.

I realise you asked for a no-javascript solution, but i figure that was for reasons of SEO. For more information, please see this page by google.

EDIT:

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

Some more on meta refresh here.

It:

1) Does not require javascript!

-

2) Can be Seo friendly!

-

3) Works with bookmarks and history (etc.)

I hope this helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文