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