Mod rewrite 取代「;X";在这个url中,www.websitename.com/info.php?lid=X

Mod rewrite 取代「;X";在这个url中,www.websitename.com/info.php?lid=X,mod-rewrite,replace,Mod Rewrite,Replace,请帮忙 我正在寻找最好的方法来取代这个url中的“X”(数字) www.websitename.com/info.php?lid=x “x”是一个数值-我想用数据库中的“name”字段替换“x” mod重写是一条路吗?我有多个相同格式的URL(最后当然是不同的“X”值),我希望通过将“X”替换为数据库字段“name”中的相应值来更改这些URL,以创建更友好的URL 如果mod rewrite是一种方法,那么有人能帮助推荐htaccess中的代码吗 提前谢谢。完全编辑:我之前的回答是基于对你想问的

请帮忙

我正在寻找最好的方法来取代这个url中的“X”(数字)

www.websitename.com/info.php?lid=x

“x”是一个数值-我想用数据库中的“name”字段替换“x”

mod重写是一条路吗?我有多个相同格式的URL(最后当然是不同的“X”值),我希望通过将“X”替换为数据库字段“name”中的相应值来更改这些URL,以创建更友好的URL

如果mod rewrite是一种方法,那么有人能帮助推荐htaccess中的代码吗


提前谢谢。

完全编辑:我之前的回答是基于对你想问的问题的误解

您需要的是创建一个友好的URL系统。这在很多教程中都有介绍——只要搜索“友好URL”,您就会找到很多资源

下面是它如何工作的摘要

要为您的站点创建友好的URL,您需要在
.htaccess
中使用类似的内容(不确定我是否正确使用了
重写规则,因为这完全是我想不出来的,所以请用谷歌搜索完整的教程来验证):


重新启动发动机
重写规则/info/(.+)/info.php?名称=$1
这意味着请求
http://www.example.com/info/foo
将被重写为
http://www.example.com/info.php?name=foo

然后,您需要修改应用程序(特别是info.php文件)以处理这种新的请求格式,在这种格式中,
名称
在URL中给出,而不是
id

请注意,在此示例中,所有名称(例如,“foo”)都必须是唯一的。如果数据库中的任意两个项具有相同的名称,则会出现问题。考虑到这一点,您可能希望向数据库表中添加一个新字段,该字段是一个唯一的列,其中包含一个字符串,该字符串仅使用适合在URL中使用的字母数字字符和连字符(这种类型的字符串称为slug)。对于数据库查询,基本上使用这个slug而不是id。假设您创建了一个名为“分解器”的项。在应用程序中创建此项时,它还应该沿着“分解器”的线条创建一个slug,并确保它是唯一的。如果你创建了第二个项目,也被称为“discomboulator”,你的应用程序可能会为它生成一个slug,比如“The-discomboulator-2”


因此,当有人请求
http://www.example.com/info/the-discombobulator-2
,mod_rewrite将其更改为
http://www.example.com/info.php?name=the-Discombolator-2
并将其交给您的应用程序。你的应用程序获取
名称
参数,即“the-discomboulator-2”,并在数据库的slug字段中查找该参数,然后获取匹配的记录。

我想这就是你要查找的:

<IfModule mod_rewrite.c>  
RewriteEngine on
RewriteRule /info/(.+) /info.php?name=$1
</IfModule>