【问题标题】:Proper mod_rewrite for SEO friendly URLs适合 SEO 友好 URL 的 mod_rewrite
【发布时间】:2023-03-12 05:22:01
【问题描述】:

我有一个自定义 php 脚本,每个脚本都有一个 page.php?id=[number] 和 page.php 页面。我已经阅读了一些 .htaccess 教程,但我不知道哪一个是最合适的方法: 例如,

page.php?id=12page/id-12/

page.phppage/page

这是我目前拥有的:

RewriteEngine On
RewriteRule ^category/([0-9])$ /category.php?id=$1
RewriteRule ^category/$ /category.php

如果我访问 category,上面的代码会返回 404,但如果我访问 category/(带有斜杠),则显示正常

【问题讨论】:

标签: apache .htaccess mod-rewrite seo


【解决方案1】:

你所有的规则都包括category末尾的斜线/,因此category当然不能匹配它。

RewriteRule ^category/?$ /category.php

/ 之后的 ? 使其可选

【讨论】:

  • 谢谢! category.php?id=2 我该怎么做呢?我尝试使用上面但它说 404 未找到,可以将两者结合起来吗?
  • 查询字符串(第一个? 之后的部分)不是路径的一部分,因此未被mod_rewrite 覆盖。
  • @KingCruch 这行得通RewriteRule ^category/([^/]+)/?$ /category.php?id=$1 你能检查一下语法,看看它是否正确吗?谢谢!
  • 如果您的意思是category/id-123(如问题中所述)而不是category.php?id=2(如评论中所述),那仅仅是因为您完全忽略了id- 部分:RewriteRule ^category/id-([0-9])$ /category.php?id=$1 .在原始规则中,您想要/ 之后的数字,显然不能匹配i(来自id-
猜你喜欢
  • 2020-05-06
  • 1970-01-01
  • 1970-01-01
  • 2011-06-11
  • 1970-01-01
  • 2015-02-14
  • 2010-12-03
  • 2019-05-29
  • 1970-01-01
相关资源
最近更新 更多