【问题标题】:.htaccess rewrite rules for category and product.htaccess 重写类别和产品的规则
【发布时间】:2012-03-02 21:21:48
【问题描述】:

我有一个 oscommerce 网站,我想使用 seo 友好的 url,我从 here 得到了一个教程

我基本上想将 URL 中的 ID 号更改为包含产品名称或类别名称的 URl。这样的 url 的一个例子是

http://katanamotorsports.com/innovative-mounts-steel-mounts-prelude-replacement-mount-p-1075.html

我想修改 .htaccess 文件,以便这些 seo 友好的 url 实际上被重定向到与类别和产品相关的相应页面。

我是学习的新手,我完全是 .htaccess 中的新手

谁能帮帮我?

【问题讨论】:

  • 您当前的网址是什么样的?
  • 我已经引用了上面的网址
  • 是的,这是用户将看到的 URL。但是您的“真实”网址是什么?可能是katanamotorsports.com/product.php?id=12314 之类的?
  • 你说得对,url的基本结构和你粘贴的一样,但是在我更改管理面板中的选项后,新的url变成了我上面粘贴的

标签: .htaccess url mod-rewrite seo oscommerce


【解决方案1】:

您必须在 .htaccess 中使用 RewriteRule 将外部 URL(用户可见)映射到您的内部版本。

您要做的是激活 RewriteEngine,然后编写一个 RewriteRule 将删除 URI 的第一部分。

RewriteEngine on
RewriteRule ^[a-z0-9\-]+-p-([0-9]+)\.html$ /product.php?id=$1
RewriteRule ^[a-z0-9\-]+-c-([0-9]+)\.html$ /category.php?id=$1

【讨论】:

  • 谢谢你,澄清一下,将每个页面重定向到相应的 php 页面?
  • 是的,这将重写任何以(字母/数字/破折号作为分隔符)开头并以某个 php 页面的数字 id 结尾的 url。 $1 允许您在正确的位置写入找到的 ID。
  • 你能解释一下这里的映射吗?我想知道的是,这个重定向将如何生效?是否会搜索数据库?如何确定确切的产品 ID?通过匹配文件或数据库中某些位置的名称?
  • 如果有人去这个网址katanamotorsports.com/… 他不会看到任何重定向。但是在您的服务器上,请求将被发送到 product.php?id=xxx 并且您将能够在脚本中正常看到它。然后您可以从您的 PHP(或其他语言)脚本中查询您的数据库。
  • 如果你看到外部 URL 的结构,你会在其中看到 '-p-',表示产品,在某些 url 中,它会是 '-c-',表示类别,我的想法看到答案,它将所有页面重定向到product.php,我正确吗?请更新答案以解决此问题
【解决方案2】:

请不要使用这样的“SEO 友好”网址。他们目前对 SEO 不友好。搜索引擎在 10 年前就喜欢它们。在过去的五年里,他们真的只是受伤了。

  • Google 几乎不重视 url 中的关键字
  • Google 会重视它认为满足用户的网站

所以,不要为搜索引擎设计网址,而是为用户设计。用户喜欢

  • 短网址(也许他们可以输入或记住)
  • 有意义的网址(他们可以在点击之前查看其内容)
  • 不包含重复或 ID 等数字的网址

你的网址最好是:

http://katanamotorsports.com/prelude-replacement-mount

【讨论】:

  • 你为什么不为你的评论提供解决方案?
  • 我建议他们退后一步。也许他们的问题不是他们认为的那样。在我回答之前,iMat 提供了实际适用的重写规则。
  • 好的,明白了。你的答案不是完全相同的解决方案,因此我问了。
猜你喜欢
  • 1970-01-01
  • 2017-06-25
  • 1970-01-01
  • 2017-02-25
  • 1970-01-01
  • 2021-12-22
  • 1970-01-01
  • 2011-11-03
  • 1970-01-01
相关资源
最近更新 更多