【问题标题】:Pretty Urls with Mod_Rewrite带有 Mod_Rewrite 的漂亮网址
【发布时间】:2012-10-18 15:00:09
【问题描述】:

我想重写以下 URL 字符串:

product.php?category=abstract_and_patterns&page=1

收件人:

抽象和模式

现在需要注意的是,类别和页面变量总是会有所不同,具体取决于用户所在的页面或他们选择的类别。

我花了几个小时试图解决这个问题,但没有成功。

[编辑]

我尝试了很多东西,但我尝试过的最新重写工作但出现 404 错误。

RewriteCond %{QUERY_STRING} ^category=([^&]+)&page=([^&]+)$
RewriteRule ^product.php$ /%1/%2? [L,R=301]

[编辑]

你们知道,实际上只有 1 个页面,即 products.php 页面。该页面上的信息是根据查询字符串中的值从数据库中提取的。现在显然为了用户友好性和 SEO 目的,我需要干净的 URL 而不是 category=abstrsct_and_patterns&page=3 但我还需要记住查询字符串,尤其是对于页面,以便网站仍然可以运行。这甚至可能吗?谢谢。

【问题讨论】:

  • 或许您可以向我们展示您的尝试?
  • 我是否正确地认为,如果我让上述重写工作,那么必须有一个页面位于它被重写到的任何类别名称处?
  • 我认为你在考虑它。您想匹配 abstract-and-patterns 并将其转换为 ?category=abstract-and-patterns
  • 感谢您的评论,但我正在倒退。由于数据库的结构方式,我不得不根据查询字符串中的值动态生成内容,这意味着不存在实际的单独页面,只有 product.php。然后根据查询字符串中的值从数据库中提取内容。因此,当用户请求 URL product.php?category=absract_and_patterns&page=3 我需要将该 URL 重写为 /abstract_and_patterns/page-3 或类似的东西。这就是为什么我需要知道它是否可能。
  • 另外值得注意的是,我仍然需要查询字符串值才能在我的 PHP 代码中使用,否则它将无法工作。

标签: mod-rewrite url-rewriting rewrite friendly-url pretty-urls


【解决方案1】:

事实证明,这无法按照我想要的方式实现。

【讨论】:

    猜你喜欢
    • 2011-02-04
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 2011-11-28
    • 2012-05-28
    • 2014-04-22
    • 2012-03-07
    • 1970-01-01
    相关资源
    最近更新 更多