0

我开发了我的网站,以便通过 ajax 在 1 页上动态加载所有页面,并且 URL 将以这种格式显示:

www.website.com/#home
www.website.com/#news
www.website.com/#news-details/news-title-goes-here

后来我发现我的页面没有出现在搜索引擎中,Google 机器人也不会以这种方式访问​​我。那么修复它并将 URL 转换为这种形式的最简单方法是什么:

www.website.com/news/news-title-goes-here

可以通过修改 .htaccess 来完成吗?

4

3 回答 3

1

问题是谷歌感到困惑。您可能无意中陷入了隐身状态。

如果您查看在主页上加载动态内容的其他网站(如新闻网站),该内容最终会链接回另一个内容页面(具有自己的 URL)。当您在 URL 中引入磅/哈希符号时,Google 会将其视为之前所在页面上的锚点(这是 URL 中传统上接受的哈希用法),并希望看到所有相同的内容. 如果您键入此哈希并加载全新的内容,则会导致 Google 感到困惑。

如果 Google 访问相同的 URL 并从 AJAX 调用中获取不同的内容,并且它无法确定不同的内容实际上来自不同的“页面”,那么 Google 可以将其解释为伪装,并将您的页面从索引中删除。

这是您可以尝试的另一件事;hashbang URL:https ://developers.google.com/webmasters/ajax-crawling/docs/getting-started

于 2014-11-05T14:15:52.427 回答
1

我点击了这个链接:

https://developers.google.com/webmasters/ajax-crawling/ 

将我所有的动态页面转换为以这种方式显示:

www.website.com/#!home
www.website.com/#!news
www.website.com/#!news-details/news-title-goes-here

(在哈希之后添加!)

然后动态生成 Html 快照。(但是我只在 1 个文件 html-snapshot.php 中制作了它们)所以现在我有 2 种类型的 URL:

丑陋的:

www.website.com/html-snapshot.php?_escaped_fragment_=news-details/news-title-goes-here

和漂亮的:

www.website.com/#!news-details/news-title-goes-here

我将所有漂亮的 URL 添加到站点地图中并在 Google 网站管理员中提交,并在网站管理员工具“Fetch as Google”中获取所有丑陋的 URL

总之就是这样,谷歌现在看到了我所有的 ajax 页面。

于 2014-11-11T08:33:55.453 回答
0

这是一个非常基本的 SEO vs coolnes 问题。如果您想保持页面的行为方式,可以并行添加静态版本。

您的 htacess 中的以下代码将任何请求路由回您的 index.php,您可以在其中根据这些值选择输出内容。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /index.php

我坐在火车上用手机写这个(无聊),所以如果格式不完美,请原谅;)

编辑:我差点忘了;使用此方法时,您会得到这样的 url: $url = $_SERVER["REQUEST_URI"];

于 2014-11-05T18:58:49.057 回答