Как вытащить переменную?

12 3
AL
На сайте с 05.11.2002
Offline
95
3311

Решил воспользоваться методом mod_rewrite для подмены URL.

Сделал такой htaccess:

RewriteEngine on

Options +FollowSymlinks

RewriteBase /

RewriteRule ^test/(.*) test.php?a=$2

И сам test.php:

<? print "Итого = $a" ?>

Если задаю адрес: www.site.ru/test/25, то выводится просто "Итого =", а 25 не выводится. То есть на test.php он 100% переводит, но переменную не берет.

Подскажите, где же я ошибся?

[Удален]
#1

Исправь:

RewriteRule ^test/(.*) test.php?a=$2

на

RewriteRule ^test/(.*) test.php?a=$1

AL
На сайте с 05.11.2002
Offline
95
#2

Interitus, да это была ошибка-опечатка.

Но даже с $1 не работает все равно!

Может быть в самом php-шном файле эту переменную ($a) нужно еще как-то вытаскивать? Какая там была команда про VARIABLE?

[Удален]
#3

Ну вообще в php.ini надо чтобы было register_argc_argv=On, но это по умолчанию так. Я еще подумаю, что это может быть.

AL
На сайте с 05.11.2002
Offline
95
#4

Interitus, еще могу добавить кое-что:

RewriteRule ^test/(.*) test.php?a=$1 - вот как у меня было сначала. Потом я подумал, что может быть нужно так:

RewriteRule ^test/(.*)$ test.php?a=$1 - но так тоже не сработало.

Подумай, пожалуйста, что же за беда такая?

И еще. Чтобы везде задавать относительные ссылки я хочу использовать в заголовках HTML тег <BASE href="http://www.site.ru">. Все ли броузеры его понимают?

LD
На сайте с 12.06.2002
Offline
71
#5

BASE --насколько я знаю -- понимают все. Опять же, ничто не мешает использовать абсолютные ссылки.

Насчет правила: посмотрите, что написано в rewrite-логе.

И я бы попробовал в правиле задать оба адреса в абсолютном виде.

C
На сайте с 19.09.2001
Offline
120
#6
Подумай, пожалуйста, что же за беда такая?

Если версия PHP выше 4.2, то по умолчанию параметр register_globals поставлен в Off и глобальные переменные не создаются. В Вашем случае следует попробовать $_GET['a']. Если напрямую (/test.php?a=25) скрипт отрабатывает, то проблема не в этом.

BASE --насколько я знаю -- понимают все

Единственный раз попробовал применить BASE. Все было нормально, потом пришел робот Апорта, проигнорировал BASE, получил серию 404 ошибок, обиделся и ушел. С тех пор я его не видел, а BASE сразу убрал :(

Хотя, за полгода могли и подправить.

С уважением, Владимир Чернышов. (не)?путевые заметки (http://chernyshov.kiev.ua/)
AL
На сайте с 05.11.2002
Offline
95
#7

Cherny, да, напрямую test.php?a=25 отрабатывает. 😕

[Удален]
#8

Andy Lion, есть ли доступ к httpd.conf? Если есть, выложи его содержимое или просто кусок между <Directory корень_сайта> и </Directory>.

LD
На сайте с 12.06.2002
Offline
71
#9

Cherny, вот про роботов не знал.. Думаю, что надо полпросить Грэя задать вопрос представителям поисковиков.

euhenio
На сайте с 21.09.2001
Offline
357
#10
RewriteRule ^test/(.*)$ test.php?a=$1 - но так тоже не сработало.

-Не разбираюсь в реврайте, но может ли быть проблема в

RewriteRule ^/test/(.*)$ test.php?a=$1

т.е., / перед директорией?

с ув., Евгений Трофименко seo блог Trofimenko.ru ( http://trofimenko.ru/ ) но ыыы мало обновляется... Tools.Promosite.ru - анализатор апдейтов Яндекса (пожертвуйте лимиты на Яндекс.XML! ( https://searchengines.guru/ru/forum/801888/page7#comment_11942489 )) Konvr.ru - увеличение конверсии сайта на 81% за 4 недели ( http://konvr.ru/ )
12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий