【发布时间】:2017-02-01 14:14:23
【问题描述】:
我有一个单页应用程序 (SPA) 网站。
所有内容都是通过 Ajax 加载的,例如:.load('page/subpage3.html') 顶部的 url 永远不会改变(这是设计使然,我希望我的访问者总是从我写新闻的第一页开始浏览网站)。
从菜单中,用户可以更改出现在菜单下的网站内容。内容文件以 xyz.html 命名,因此它们在我的记事本++ 中显示为格式化并位于子文件夹中。 它们的源代码中没有标题、样式和 js 文件,因为它们附加到我的 index.html 中。 如果用户通过 mysite.com 域打开站点,则一切正常。
(大)问题是 google 使用完整路径列出我的内容页面,就像它们是独立的完整工作页面一样。但是当用户打开这些链接时,只加载了该内容文件,没有任何图片,任何 css 或 js 文件,没有菜单,甚至出现错误的字符,因为这些内容文件中没有指定任何内容。
我的问题是,当单击(/键入)内容页面的 url 时,如何强制“始终打开 index.html”。这些 url(我的子页面 - 内容文件)应该被重定向到我的域名。就像我对 404 错误处理所做的那样。
可能为了解决问题,需要更改 .htaccess 文件(幸运的是,我可以完全访问该文件)。该站点正在 Apache 服务器上运行。
我发现最好的是下一个代码,但我不敢使用/尝试它:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteRule . index.html [R=302,L]
因为我不知道它是否会破坏任何站点内功能(菜单、照片库……),并且我不确定在这些更改之后谷歌是否能够正常搜索和列出匹配项或它会忽略那些导致重定向的内容页面吗? (或者即使它会起作用,我的页面可能会获得较低的排名?)我想保持整个网站上的谷歌发现与现在相同。谢谢。
【问题讨论】:
标签: ajax .htaccess redirect single-page-application