$map = array( 'adwords' => 'adwords', 'yadirect' => 'direct', ); if( $_GET['utm_source'] AND $map[ $_GET['utm_source'] ] ) { $url = 'http://'.$map[ $_GET['utm_source'] ].'.site.ru'.$_SERVER['REQUEST_URI']; header('Location: '.$url, false, 301); exit(); }
По логике какбы интерпретатор выполняет код последовательно.
Да.
Там ничего делать не нужно.
Попробуйте сделать то же самое.
Читайте книги. Их по html довольно много.
Второе (без Options и RewriteEngine) добавить в первое после RewriteEgnine On
var_dump($srp, $sr, 10); покажет вам почему $st - показывает ноль. PHP он такой, нетипизированный язык.
phpinfo();
Так передаются или передаются частично? Тут стоит спросить, а каким образом вы это проверяли?
ЧПУ дле ничего не режет. Он сам на $_GET массиве работает, ибо у него реврайты пишутся отдельно для каждого адреса, а не парсится скриптом.
Нигде ничего не "проглатывается", как обычно всегда дело в руках. Вы изначально не правильно подошли к проблеме. Начали с дле, продолжили с мод_реврайт, а в сабже говорите что не передаются ГЕТ параметры на сервер. Если следовать сабжу, то нужно создать простой скрипт с кодом print_r($_GET) и отправить к нему запрос с GET параметрами. Потом, таким же образом, продебажить параметры в своем скрипте отправив GET параметры, и в конце проверить работу своего реврайта.
Вроде бы работал
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\?
RewriteRule ^ - [F]