Каким образом можно получить два метода 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
Но, похоже, не работает … как я могу это сделать?
РЕДАКТИРОВАТЬ:
$ mode1 = $ _GET ['mode'];
$ mode2 = $ _GET ['othermode'];
Как это…
ИЗМЕНИТЬ СНОВА:
http://www.domain.com/adm/generated/pass/6z9c4q9k8p
Правильно … это URL, который он должен сделать
И в PHP он имеет это:
if($mode == "generated")
Я хочу, чтобы PHP видел, установлен ли режим в URL-адресе, а сгенерированный пароль – другой GET
Я поставил htaccess следующим образом:
RewriteRule ^adm/(.*)/(.*)$ adm.php?mode=$1&generated=$2
PHP также захватит сгенерированный пароль в URL-адресе и отобразит его на странице.
в чем проблема, с которой вы сейчас сталкиваетесь? Кажется, Ричард достал вам то, что вам нужно?
Использование 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;
или это не ваш вопрос?
В Perl-совместимых RegExs $
является якорем, который обозначает «конец». Поэтому удалите $
из середины вашего шаблона, после ^adm/(.*)
:
RewriteRule ^adm/(.*)/(.*)$ adm.php?mode=$1&othermode=$2
Вместо написания сложных регулярных выражений в .htaccess я просто использовал бы простой
RewriteCond $1 !^adm\.php RewriteRule ^adm/(.*)$ adm.php/$1 [L]
и работать с $_SERVER['PHP_SELF']
внутри adm.php
чтобы вы могли обрабатывать любой сложный URL-адрес, который начинается с adm
без изменения .htaccess.