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友好.
简单的 .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