【问题标题】:How do I convert a PHP query string into a slash-based URL?如何将 PHP 查询字符串转换为基于斜杠的 URL?
【发布时间】:2010-11-29 06:51:15
【问题描述】:

我是一个非常熟练的程序员,但是在 RegEx 和重写方面,我完全是 n00b。我想从

转换 URL
http://www.example.com/lookup.php?id=1

http://www.example.com/lookup/1/item/

其中“item”是指数据库中正在查找的项目的名称。

我正在使用 LAMP(Linux、Apache、MySQL、PHP),但我终其一生都无法弄清楚如何转换 URL,以便它们对 SEO 友好。

【问题讨论】:

  • 看起来你害怕他们。请获取掌握正则表达式的副本。
  • 我也会推荐正则表达式食谱。

标签: php apache mod-rewrite


【解决方案1】:

简单的 .htaccess 示例:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^lookup/([a-z0-9\-]+)/item/?$ /lookup.php?id=$1
</IfModule>

这将匹配任何长度的任何字母数字(也将识别破折号)字符串作为“id”。您可以通过将正则表达式更改为 ([0-9]+) 来将其限制为数字。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^lookup/([a-z0-9\-]+)/([a-z0-9\-]+)/?$ /lookup.php?id=$1&view=$2
</IfModule>

这个将匹配 /lookup/123/some-text//lookup.php?id=123&amp;view=some-text

【讨论】:

    【解决方案2】:

    看看 htaccess 重写 url! :)

    这是你的例子:

    RewriteRule ^lookup/(\d+)/(.*)$ /lookup.php?id=$1&name=$2
    

    当您访问lookup/123/my-product/ 时,它会在内部调用lookup.php?id=123&amp;name=my-product 文件。

    【讨论】:

    【解决方案3】:

    您想从旧网址重定向到新网址吗?或者您是否希望阅读那些“友好”的 URL,然后让它们表现得像旧的 URL?

    如果是后者,请尝试查看Net_URL_Mapper,以便相当轻松地解析和重定向这些链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-23
      • 1970-01-01
      相关资源
      最近更新 更多