Php 动态更改URL

Php 动态更改URL,php,.htaccess,Php,.htaccess,如何将服务器上的URL更改为 根/类别/产品/ 而不是我的网站目前的状况 root/index.php?page=item&id=xx 我知道这与.htaccess文件和url重写有关,但我提出了 RewriteRule ^item&id=([0-9]+)$ index.php/product_name=$1 这似乎对URL没有任何影响 我想我会遇到的任何其他问题是,url中根本没有显示产品名称,因此我也想包括这一点我知道你的问题,但不理解你想要遵循的结构。让我给你们举个例子,也许你

如何将服务器上的URL更改为

根/类别/产品/

而不是我的网站目前的状况

root/index.php?page=item&id=xx

我知道这与.htaccess文件和url重写有关,但我提出了

RewriteRule ^item&id=([0-9]+)$ index.php/product_name=$1 
这似乎对URL没有任何影响


我想我会遇到的任何其他问题是,url中根本没有显示产品名称,因此我也想包括这一点

我知道你的问题,但不理解你想要遵循的结构。让我给你们举个例子,也许你们能从中得到灵感,解决你们的问题

假设我们有一个文件名和查询字符串detail.php?item=computer,并希望它显示为“detail/computer”

RewriteRule ^detail/(.*) detail.php?item=$1

URI中的“类别”和“产品”与查询字符串中的“页面”和“id”之间的相关性是什么?目前类别之间没有相关性,类别目前唯一的用途是导航。url中的类别是静态的?url中没有类别如果你想让你的url看起来像
/category/product/
,那么你最好重写index.php脚本,以“category”和“product”作为查询字符串参数,或者让它知道如何从中获取“page”和“id”。告诉我吧,很好的例子感谢您的回复,url结构是
domain.com/index.php?page=item&id=xx
-目前我只想将其清理到
index.php/id=xx
-到时候我将研究如何将产品类别和产品名称添加到url中。查询以哪种方式工作,我是先定义要更改的url还是要将url更改为什么?我理解^detail/(*)表示前缀为detail/的任何内容,然后是任何进行此操作的字符。。希望这是有意义的,我确信这不会像看起来那样让人困惑。重写规则^index/(*)index.php?id=$1-并将超链接设为index/id-x-因此当您在代码中获得id的值时,它将像$_get['id'],它将返回整个内容(id-x),您需要用连字符(-)拆分或分解它。例如。-$id=explode(“-”,$\u GET['id']);-您将使用$id[1]作为您的值(x)。