请帮帮忙。
我正在寻找最好的方法来替换这个网址中的"X“(数字)。
www.websitename.com/info.php?lid=x
"x“是一个数值--我想用我数据库中的"name”字段替换"X“。
mod是重写之路吗?我有多个相同格式的urls (当然最后是不同的"X“值),我希望通过将"X”替换为数据库字段"name“中的相应值来创建更友好的urls。
如果mod重写是可行的,那么有没有人可以帮助我们在htaccess中推荐代码?
提前谢谢。
发布于 2010-09-17 20:42:37
完全编辑:我之前的回答是基于对你想问的问题的误解。
您所要求的是创建一个友好的URL系统。这在许多教程中都有涉及--只需搜索“友好的URL”,您就会找到大量的资源。
下面是它的工作原理的总结。
要为你的站点创建友好的RewriteRule,你需要在.htaccess中这样做(不确定我的URL是否正确,因为这完全是我想不到的,所以谷歌提供了一个完整的教程来验证):
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule /info/(.+) /info.php?name=$1
</IfModule>这意味着对http://www.example.com/info/foo的请求将被重写为http://www.example.com/info.php?name=foo。
然后,您需要修改您的应用程序(特别是info.php文件)来处理这种新的请求格式,在这种格式中,name是在URL中提供的,而不是id。
请注意,在本例中,所有名称(例如,"foo")必须是唯一的。如果数据库中的任何两个项目具有相同的名称,您就会遇到问题。考虑到这一点,您可能希望向数据库表中添加一个新字段,该字段是一个唯一的列,其中包含仅使用字母数字字符和适合在URL中使用的连字符的字符串(这种类型的字符串称为slug)。基本上,您将使用这个slug而不是id来进行数据库查询。假设您创建了一个名为“Discombobulator”的项目。当在你的应用程序中创建这个项目时,它还应该创建一个类似于“-discombobulator”的插件,并确保它是唯一的。如果您创建了第二个项目,也称为“Discombobulator",您的应用程序可能会为它生成一个类似于"the-discombobulator-2”的插件。
因此,当有人请求http://www.example.com/info/the-discombobulator-2时,mod_rewrite会将其更改为http://www.example.com/info.php?name=the-discombobulator-2,并将其交给您的应用程序。您的应用程序将获取name参数,即" the -discombobulator-2“,并在数据库的slug字段中查找该参数,然后获取匹配的记录。
发布于 2010-09-17 20:44:39
我想这就是你要找的:
http://www.roscripts.com/Pretty_URLs_-_a_guide_to_URL_rewriting-168.html
https://stackoverflow.com/questions/3735331
复制相似问题