Getting two variables in the URL with htaccess
What way it is to be to get two GET methods in the URL by htaccess?
RewriteRule ^adm/(.*)$ adm.php?mode=$1
I've used that for the example URL:
http://www.domain.com/adm/thismode
Now I want to get two methods like:
http://www.domain.com/adm/thismode/othermode
I've tried this:
RewriteRule ^adm/(.*)$/(.*)$ adm.php?mode=$1&othermode=$2
But doesn't seem to work... how do I get it to do that?
EDIT:
$mode1 = $_GET['mode'];
$mode2 = $_GET['othermode'];
Like this...
EDIT AGAIN:
http://www.domain.com/adm/generated/pass/6z9c4q9k8p
Right... this is the URL it has to do
And in the PHP it has this:
if($mode == "generated")
I want the PHP to see if the mode is set in the URL and the gener开发者_运维知识库ated password is the other GET
I put the htaccess as this way:
RewriteRule ^adm/(.*)/(.*)$ adm.php?mode=$1&generated=$2
The PHP will also grab the generated password in the URL and display it on the page.
what's the problem you're having now Seems like Richard got you what you needed?
Using your example URL:
http://www.domain.com/adm/generated/pass/6z9c4q9k8p
and the following in your .htaccess
RewriteRule ^adm/(.*)/(.*)/(.*)$ adm.php?mode=$1&generated=$2&pass=$3
then you can do:
$mode1 = $_GET['mode'];
$generated = $_GET['generated'];
$pass = $_GET['pass'];
if ( $mode1 == 'generated' && $generated == 'pass' )
echo $pass;
or was that not your question?
In Perl compatible RegExs a $
is an anchor, which denotes "the end". So remove the $
from the middle of your pattern, after ^adm/(.*)
:
RewriteRule ^adm/(.*)/(.*)$ adm.php?mode=$1&othermode=$2
Instead of writing complex regular expressions in the .htaccess, I would just use a simple
RewriteCond $1 !^adm\.php
RewriteRule ^adm/(.*)$ adm.php/$1 [L]
and work with $_SERVER['PHP_SELF']
inside adm.php
so you can handle any kind of complex URL which starts with adm
without changing the .htaccess.
精彩评论