我是一个非常熟练的程序员,但是当谈到RegEx并重写时,我总计n00b。我想从
转换网址http://www.example.com/lookup.php?id=1
到
http://www.example.com/lookup/1/item/
其中“item”指的是正在查找的数据库中项目的名称。
我正在使用LAMP(Linux,Apache,MySQL,PHP),在我的生活中,我不能弄清楚如何转换URL以使它们对SEO友好。
答案 0 :(得分:4)
简单.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&view=some-text
答案 1 :(得分:2)
看看htaccess重写网址! :)
以下是您的示例:
RewriteRule ^lookup/(\d+)/(.*)$ /lookup.php?id=$1&name=$2
当您访问lookup/123/my-product/
时,它会在内部调用lookup.php?id=123&name=my-product
文件。
答案 2 :(得分:0)
您想要从旧网址重定向到新网址吗?或者您是否希望阅读这些“友好”的网址,然后让它们像旧网址一样?
如果是后者,请尝试查看Net_URL_Mapper,以便轻松地解析和重定向这些链接。