views:

499

answers:

3

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 generated 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.

+5  A: 

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
LeguRi
+1, but escaping the forward slashes in the context above is not necessary (also the dollar sign can be left out entirely).
ChristopheD
I've edited the post again... need some help on the other bit
YouBook
@ChristopheD - Cool! Thanks; I'll remove the "escape the slashes" part.
LeguRi
A: 

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.

kemp
+1  A: 

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?

pocketfullofcheese
PERFECT :D thanks for this method
YouBook