2

我正在尝试为网站使用对 SEO 友好的 URL。该网站以分层方式显示信息。例如,如果我的网站是关于汽车的,我希望 URL ' http://example.com/ford ' 显示存储在我的'cars' 表中的所有福特车型。然后 URL ' http://example.com/ford/explorer ' 将显示所有 Ford Explorer 型号(V-6、V-8、Premium 等)。

现在的问题是:mod_rewrite 是用于将查询字符串样式的 URL 重写为语义 URL,还是相反?换句话说,当我使用 JavaScript 设置window.location=$URL时,URL 应该是查询字符串版本' http://example.com/page.php?type=ford&model=explorer '还是我内部使用' http://example. com/ford/explorer ' 然后让我访问查询字符串变量?

希望有人能看到我对这个问题的困惑。对于它的价值,我确实为我的所有顶级类别制作了独特的“slugs”(显然,该网站不是关于汽车的)。


感谢到目前为止的所有帮助。我得到了重写工作,但它影响了网站上的其他路径(CSS、JavaScript、图像)。我为所有这些包括使用正确的路径结构(即“/images/car.png”和“/css/main.css”)。我是否必须对所有文件使用绝对路径(' http://example.com/css/main.css ')?谢谢!

4

2 回答 2

3

通常,使用 mod_rewrite 的人使用这样的术语:

我希望 mod_rewrite 将 A 重写为 B。

这意味着外部世界对页面 A 的任何请求都会被重写到服务器上的文件 B。

您希望外界看到的 URL 看起来像

一种)http://example.com/ford/explorer

但是您的网络服务器希望它们看起来像

二)http://example.com/page.php?type=ford&model=explorer

我想说您想将 (A) 重写为看起来像 (B),或者您想将语义 URL 重写为查询字符串 URL。

由于您页面上的所有链接都是由用户单击和/或由浏览器请求的,因此您希望它们看起来像 (A)。这包括 javascript 在 window.location 中使用的链接。它们可以而且应该看起来像 (A)。

于 2009-10-16T21:48:37.033 回答
2

设置完成mod_rewrite后,您的链接应指向 URL 的 mod_rewritten 版本(在您的示例中:http://mysite.com/ford/explorer)。在您的系统内部,您仍将引用变量,就好像它们是传统的查询字符串名称值对一样。

还值得指出的是,从搜索引擎的角度来看,谷歌现在开始提倡更多的逻辑 URL,即查询字符串而不是 mod rewrite

这是否意味着我应该完全避免重写动态 URL?这是我们的建议,除非您的重写仅限于删除不必要的参数,或者您非常努力地删除所有可能导致问题的参数。如果您转换动态 URL 以使其看起来是静态的,您应该知道我们可能无法在所有情况下正确解释信息 http://googlewebmastercentral.blogspot.com/2008/09/dynamic-urls-vs-static -urls.html

还值得一看:http: //googlewebmastercentral.blogspot.com/2009/08/optimize-your-crawling-indexing.html

于 2009-10-16T21:31:32.587 回答