Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Htaccess重写规则条件_Php_.htaccess_Mod Rewrite_Get_Conditional - Fatal编程技术网

Php Htaccess重写规则条件

Php Htaccess重写规则条件,php,.htaccess,mod-rewrite,get,conditional,Php,.htaccess,Mod Rewrite,Get,Conditional,当涉及到.htaccess文件时,我是一个彻头彻尾的傻瓜。。。我试图做的是检查GET变量是否存在,?si=10,并将其传递给重写,但仅当它存在时 RewriteRule ^user/([^/\.]+)/?$ profile/index.php?name=$1 这样,当我说website.com/user/Username/时,它会转到服务器上的website.com/profile/?name=Username。但是当我添加dowebsite.com/user/Account/?si=10时,

当涉及到.htaccess文件时,我是一个彻头彻尾的傻瓜。。。我试图做的是检查GET变量是否存在,
?si=10
,并将其传递给重写,但仅当它存在时

RewriteRule ^user/([^/\.]+)/?$ profile/index.php?name=$1
这样,当我说
website.com/user/Username/
时,它会转到服务器上的
website.com/profile/?name=Username
。但是当我添加do
website.com/user/Account/?si=10
时,服务器没有将
si
变量传递到实际加载的页面上。你知道我该怎么做吗?对不起,如果我说得不好..

请尝试

从手册上

当替换URI包含 查询字符串,默认的 重写规则是放弃现有的 查询字符串,并将其替换为 新生成的一个。使用[QSA] 标志使查询字符串 合并的

试试

从手册上

当替换URI包含 查询字符串,默认的 重写规则是放弃现有的 查询字符串,并将其替换为 新生成的一个。使用[QSA] 标志使查询字符串 合并的


您可以这样做:

RewriteCond %{QUERY_STRING} ^si=([0-9]+)$ // replace regex as neccesary
RewriteRule ^user/([^/\.]+)/?$ profile/index.php?name=$1&si=%1

百分号%将从重写条件中引入一个或多个匹配项,并且您将美元符号作为重写规则中匹配项的正常符号。这使您可以完全控制查询变量,但QSA更简单

您可以这样做:

RewriteCond %{QUERY_STRING} ^si=([0-9]+)$ // replace regex as neccesary
RewriteRule ^user/([^/\.]+)/?$ profile/index.php?name=$1&si=%1
百分号%将从重写条件中引入一个或多个匹配项,并且您将美元符号作为重写规则中匹配项的正常符号。这使您可以完全控制查询变量,但QSA更简单