Получение двух переменных в URL с помощью htaccess - PullRequest
4 голосов
/ 03 апреля 2010

Какой способ получить два метода GET в URL с помощью htaccess?

RewriteRule ^adm/(.*)$ adm.php?mode=$1

Я использовал это для примера URL:

http://www.domain.com/adm/thismode

Теперь я хочу получить два метода, таких как:

http://www.domain.com/adm/thismode/othermode

Я пробовал это:

RewriteRule ^adm/(.*)$/(.*)$ adm.php?mode=$1&othermode=$2

Но, похоже, не работает ... как мне заставить это сделать?

EDIT:

$ mode1 = $ _GET ['mode'];

$ mode2 = $ _GET ['othermode'];

Вот так ...

ИЗМЕНИТЬ СНОВА:

http://www.domain.com/adm/generated/pass/6z9c4q9k8p

Правильно ... это URL, который он должен сделать

А в PHP это так:

if($mode == "generated")

Я хочу, чтобы PHP видел, установлен ли режим в URL, а сгенерированный пароль - другой

Я поставил htaccess так:

RewriteRule ^adm/(.*)/(.*)$ adm.php?mode=$1&generated=$2

PHP также захватит сгенерированный пароль в URL и отобразит его на странице.

Ответы [ 3 ]

10 голосов
/ 03 апреля 2010

в чем проблема у вас сейчас Кажется, что Ричард получил вам то, что вам нужно?

Используя ваш пример URL:

http://www.domain.com/adm/generated/pass/6z9c4q9k8p

и следующее в вашем .htaccess

RewriteRule ^adm/(.*)/(.*)/(.*)$ adm.php?mode=$1&generated=$2&pass=$3

тогда вы можете сделать:

$mode1 = $_GET['mode'];
$generated = $_GET['generated'];
$pass = $_GET['pass'];
if ( $mode1 == 'generated' && $generated == 'pass' ) 
    echo $pass;

или это был не твой вопрос?

6 голосов
/ 03 апреля 2010

В Perl-совместимых RegExs $ является якорем, который обозначает «конец». Поэтому удалите $ из середины вашего шаблона после ^adm/(.*):

RewriteRule ^adm/(.*)/(.*)$ adm.php?mode=$1&othermode=$2
0 голосов
/ 03 апреля 2010

Вместо написания сложных регулярных выражений в .htaccess, я бы просто использовал простой

RewriteCond $1 !^adm\.php
RewriteRule ^adm/(.*)$ adm.php/$1 [L]

и работа с $_SERVER['PHP_SELF'] внутри adm.php, поэтому вы можете обрабатывать любые сложные URL-адреса, начинающиеся с adm, без изменения .htaccess.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...