所以我的网站位于http://example.com/foo/
(在目录下,主域名是其他内容)。
使用.htaccess,我已经设置了我的网页,因此网址看起来像http://example.com/foo/about/
,http://example.com/foo/polls/
,http://example.com/foo/registration/
等。这很有效,网站加载很好,可以遍历没有任何Javascript问题。
现在,我想在导航中添加一些AJAX功能。如果我在http://example.com/foo/
并点击“关于”的导航,则会将网址更改为http://example.com/foo/#about
,并在网站的一个部分中动态加载该网页。我也有这个工作。
我有两个问题涉及处理AJAX和非AJAX URL之间的切换。
如果我在http://example.com/foo/about/
并点击民意调查,它看起来就像http://example.com/foo/about/#polls
看起来不太漂亮。理想情况下,我希望每个AJAX URL都只使用主目录和散列格式化,例如http://example.com/foo/#about
。
我应该通过强制实际(非AJAX)重定向到带有哈希符号的索引页来处理它,然后从那里加载它吗?
另一个问题是相反的。如果我将http://example.com/foo/#about
发送给禁用了Javascript的人,或者可能是某人链接到它并且机器人抓取了该链接,是否有办法处理重定向到正确的非AJAX页面或者这只是一个生活中不幸的事实,我将不得不处理?
答案 0 :(得分:0)
如果您需要非JavaScript支持,我会将您的所有网址直接更改为网页。与http://example.com/foo/#about
到http://example.com/foo/about/
然后,javascript可以拦截它,调用event.preventDefault()
,并将其“重定向”到#about,这将遵循您的ajax功能。
如果客户端没有javascript,则会照常转到http://example.com/foo/about/
。
至于http://example.com/foo/about/
,javascript客户端永远不应该到达这里,因为它们将始终被重定向到主题标签。
答案 1 :(得分:0)
1)如果你重定向到主页然后使用ajax加载那个没有多大意义的关于页面。你应该做的是让一切都通过ajax工作:首先应该只有http://example.com/foo/about/ http://example.com/foo/#about,然后你点击民意调查时只更新哈希和内容。
2)没有办法避免,抱歉。