Php .htaccess-通过重写条件将多个变量传递给重写规则
搜索,我无法找到任何其他类似的问题 我在.htaccess文件中有以下示例行:Php .htaccess-通过重写条件将多个变量传递给重写规则,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,搜索,我无法找到任何其他类似的问题 我在.htaccess文件中有以下示例行: RewriteCond %{REQUEST_URI} ^/index.php$ RewriteCond %{QUERY_STRING} ^service=rp$ RewriteCond %{REQUEST_METHOD} !=POST RewriteRule ^(.*)$ https://www.example.com/redirect/?service=rp&token=$1&time=$2 [R=
RewriteCond %{REQUEST_URI} ^/index.php$
RewriteCond %{QUERY_STRING} ^service=rp$
RewriteCond %{REQUEST_METHOD} !=POST
RewriteRule ^(.*)$ https://www.example.com/redirect/?service=rp&token=$1&time=$2 [R=301,L]
但是,它并没有将变量传递给重写规则。有三个变量:
服务、代币、时间
查看其他答案,有人提到使用$1、$2和$3捕获原始URL中的变量,但似乎传递不正确。似乎您需要了解常规表达式是如何工作的<代码>$1..$n-是对建议组的引用,可通过RegExp中的大括号指定。例如,在这里,如果不指定要重写的传入请求的语法,就不可能回答这个问题。但是,如果只需要保存指定的GET参数,那么只需考虑“代码> QSA < /Cord>标记。重写模块提供(读取该文档)。.显然,我仍然在做一些不正确的事情。我将RewriteRule行更改为--RewriteRule/test.php?$1[QSA,R=301,L],以便可以看到传入的变量。执行此操作后,它将我重定向到test.php?service=rp---但它仍然没有传入其他两个变量。似乎您需要了解常规表达式是如何工作的<代码>$1..$n-是对建议组的引用,可通过RegExp中的大括号指定。例如,在这里,如果不指定要重写的传入请求的语法,就不可能回答这个问题。但是,如果只需要保存指定的GET参数,那么只需考虑“代码> QSA < /Cord>标记。重写模块提供(读取该文档)。.显然,我仍然在做一些不正确的事情。我将RewriteRule行更改为--RewriteRule/test.php?$1[QSA,R=301,L],以便可以看到传入的变量。执行此操作后,它将我重定向到test.php?service=rp---但它仍然没有传入其他两个变量。