使用htaccess在URL中获取两个变量

Mac*_*Mac 4 php methods .htaccess get

通过htaccess在URL中获取两个GET方法的方法是什么?

RewriteRule ^adm/(.*)$ adm.php?mode=$1
Run Code Online (Sandbox Code Playgroud)

我已将其用于示例网址:

http://www.domain.com/adm/thismode
Run Code Online (Sandbox Code Playgroud)

现在我想得到两个方法,如:

http://www.domain.com/adm/thismode/othermode
Run Code Online (Sandbox Code Playgroud)

我试过这个:

RewriteRule ^adm/(.*)$/(.*)$ adm.php?mode=$1&othermode=$2
Run Code Online (Sandbox Code Playgroud)

但似乎没有用......我怎么做到这一点?

编辑:

$ mode1 = $ _GET ['mode'];

$ mode2 = $ _GET ['othermode'];

像这样...

再次编辑:

http://www.domain.com/adm/generated/pass/6z9c4q9k8p
Run Code Online (Sandbox Code Playgroud)

对......这是它必须做的URL

在PHP中它有这个:

if($mode == "generated")
Run Code Online (Sandbox Code Playgroud)

我希望PHP查看是否在URL中设置了模式,生成的密码是另一个GET

我把htaccess这样放了:

RewriteRule ^adm/(.*)/(.*)$ adm.php?mode=$1&generated=$2
Run Code Online (Sandbox Code Playgroud)

PHP还将获取URL中生成的密码并将其显示在页面上.

poc*_*ese 10

你现在遇到的问题似乎理查德得到了你所需要的东西?

使用示例网址:

http://www.domain.com/adm/generated/pass/6z9c4q9k8p
Run Code Online (Sandbox Code Playgroud)

以及.htaccess中的以下内容

RewriteRule ^adm/(.*)/(.*)/(.*)$ adm.php?mode=$1&generated=$2&pass=$3
Run Code Online (Sandbox Code Playgroud)

然后你可以这样做:

$mode1 = $_GET['mode'];
$generated = $_GET['generated'];
$pass = $_GET['pass'];
if ( $mode1 == 'generated' && $generated == 'pass' ) 
    echo $pass;
Run Code Online (Sandbox Code Playgroud)

或者那不是你的问题?


Ric*_*uen 6

在Perl兼容的RegExs中,a $是一个锚,表示"结束".因此$,在^adm/(.*)以下情况之后从图案的中间移除:

RewriteRule ^adm/(.*)/(.*)$ adm.php?mode=$1&othermode=$2
Run Code Online (Sandbox Code Playgroud)