我有一个 ajax webapp,我想让它可以被 Google 索引。
我的路径使用了 hashbang,看起来像:
http://tld.com/?_escaped_fragment_en/news
http://tld.com/?_escaped_fragment_de/news
或者
http://tld.com/?_escaped_fragment_en/news/news-item-name
http://tld.com/?_escaped_fragment_de/news/news-item-name
考虑到网络的无限性,我的 URL 也可能如下所示:
http://tld.com/index.html?_escaped_fragment_en/news/news-item-name
或者
http://tld.com/index?_escaped_fragment_en/news/news-item-name
我有一些包含标记的文件,这些标记应该可以被搜索引擎在网站文档根目录的根级别名为“fragments”的文件夹中看到。
这些文件按文件夹组织,例如:
/fragments/en/ -> containing a file called news
或者
/fragments/en/ -> /news , containg a file called news-item-name
Google 请求文件为 ?_escaped_fragment_ ,根据https://developers.google.com/webmasters/ajax-crawling/docs/specification。
我需要创建 apache 重写规则,映射请求,例如,
http://tld.com/index.html?_indexed_fragment=en/news/news-item-name
到我的文件系统上的相应文件 (/fragments/en/news/news-item-name),以便可以将快照提供给爬虫。
我目前已制定以下规则:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^$ /fragments/%1
不幸的是,它们无法处理文件夹结构,它们只是在 fragments 目录中寻找文件。