如何将PHP查询字符串转换为基于斜杠的URL?

Sea*_*ell 7 php apache mod-rewrite

我是一个非常熟练的程序员,但是当谈到RegEx和重写时,我总是n00b.我想转换一个URL

http://www.example.com/lookup.php?id=1
Run Code Online (Sandbox Code Playgroud)

http://www.example.com/lookup/1/item/
Run Code Online (Sandbox Code Playgroud)

其中"item"指的是正在查找的数据库中项目的名称.

我正在使用LAMP(Linux,Apache,MySQL,PHP),在我的生活中,我不能弄清楚如何转换URL以使它们对SEO友好.

Lev*_*evi 4

简单的 .htaccess 示例:

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

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

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

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