Php htaccess文件使用正斜杠代替?、=和&;查询字符串中的符号?

Php htaccess文件使用正斜杠代替?、=和&;查询字符串中的符号?,php,.htaccess,url-rewriting,query-string,friendly-url,Php,.htaccess,Url Rewriting,Query String,Friendly Url,我正在创建一个小型电子商务网站。在这里,我们有一个项目列表,用户可以单击该列表并浏览有关该项目的信息。我将在查询字符串中传递项id和一些其他信息,以便在下一页中可以从数据库中获取相关数据 现在我们有以下URL默认结构: www.somedomain.com/item.php?id=1&some1=somevalue&some2=somevalue 但我希望URL是这样的: www.somedomain.com/item/1/somevalue/somevalue 其中item

我正在创建一个小型电子商务网站。在这里,我们有一个项目列表,用户可以单击该列表并浏览有关该项目的信息。我将在查询字符串中传递项id和一些其他信息,以便在下一页中可以从数据库中获取相关数据

现在我们有以下URL默认结构:

www.somedomain.com/item.php?id=1&some1=somevalue&some2=somevalue
但我希望URL是这样的:

www.somedomain.com/item/1/somevalue/somevalue
其中
item
item.php
/1/somevalue/somevalue
是查询字符串
?id=1&some1=somevalue&some2=somevalue
。我希望我的整个网站查询字符串参数如上所述


我使用的是核心PHP,没有框架。我用
.htaccess
文件做了一些操作,但服务器在加载网站时出错。如何使用
.htaccess
文件执行此操作?

尝试以下操作,我正在使用mod_rewrite来实现此结果,如果使用任何以前的尝试,请清除缓存

下面还将包括下划线“u”,后面的下一条规则仅适用于一个项目

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z\_]+)/([0-9]+)/([a-zA-Z]+)/([a-zA-Z]+)$ $1.php?id=$2&some1=$3&some2=$4 [L]
RewriteRule ^([a-zA-Z\_]+)/([0-9]+)$ $1.php?item=$2[L]

尝试下面的方法,我正在使用mod_rewrite来实现结果,如果使用任何以前的尝试,请清除缓存

下面还将包括下划线“u”,后面的下一条规则仅适用于一个项目

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z\_]+)/([0-9]+)/([a-zA-Z]+)/([a-zA-Z]+)$ $1.php?id=$2&some1=$3&some2=$4 [L]
RewriteRule ^([a-zA-Z\_]+)/([0-9]+)$ $1.php?item=$2[L]

您使用的是框架(或前端控制器模式)?我使用的是核心PHP,没有框架。相关:您使用的是框架(或前端控制器模式)?我使用的是核心PHP,没有框架。相关:它仅限于项目页面或整个域?有什么问题吗?我使用您的文件并使用我想要的查询字符串调用页面,它说找不到。您必须调用此www.somedomain.com/item/1/somevalue/somevalue,对吗?是的,但没有找到它仅限于项目页面或整个域?问题是什么?我使用您的文件并使用我想要的查询字符串调用页面,它说找不到。你必须称之为www.somedomain.com/item/1/somevalue/somevalue,对吗?是的,我没有找到,但没有找到