помогите с mod_rewrite

alexey84

phplancer
помогите с mod_rewrite

написал вот тако правило
RewriteCond %{HTTP_HOST} ^test1\.ru$ [OR]
RewriteCond %{HTTP_HOST} ^www\.test1\.ru$
RewriteRule ^$ index.php?site=1&query_string=$1 [L,QSA]

RewriteCond %{HTTP_HOST} ^test1\.ru$ [OR]
RewriteCond %{HTTP_HOST} ^www\.test1\.ru$
RewriteRule ^(.*)$ index.php?site=1&query_string=$1 [L,QSA]
в скрипте вывожу $_SERVER['QUERY_STRING']
при заходе на сайт test.ru выдает site=1&query_string=index.php
а при заходе на test.ru/page выдает site=1&query_string=index.php&site=1&query_string=page
подскажите почему такое происходит дублирование? и откуда взялся index.php?
 

alexey84

phplancer
любой набор символов
ну т е если зашли на test.ru/page
то сработал бы скрипт index.php?site=1&query_string=$1
 

kruglov

Новичок
Сколько символов может быть в "любом наборе символов"?
От и до?
 

kruglov

Новичок
alexey84
Ну, насчет 255 я бы поспорил, но это несущественно.
Существенна другая граница.
Нужна ли первая половина правил, если ^$ тоже состоит из 0 символов?
 

alexey84

phplancer
первое убрал
оставил
RewriteCond %{HTTP_HOST} ^newsms1\.volex\.z8\.ru$ [OR]
RewriteCond %{HTTP_HOST} ^www\.newsms1\.volex\.z8\.ru$
RewriteRule ^(.*)$ index.php?site=1&query_string=$1 [L]
теперь вообще возвращаеться только site=1&query_string=index.php
 

kruglov

Новичок
Ну, теперь, наверное, надо запретить index.php?*** переправлять на него же?
 

alexey84

phplancer
как? что то не догоняю...

-~{}~ 19.07.07 12:34:

разобрался с правилами надо так
RewriteCond %{HTTP_HOST} ^test\.ru$ [OR]
RewriteCond %{HTTP_HOST} ^www\.test\.ru$
RewriteRule ^([-_A-Za-z0-9\/\.\&\?]{255})$ index.php?site=1&query_string=$1 [L,QSA]
те указывать точное количество знаков
но как только задаю диапазон {0, 255} сразу начинает работать не правильно
 

kruglov

Новичок
a index.php разве не входит в ^([-_A-Za-z0-9\/\.\&\?]{255})$ ?

-~{}~ 19.07.07 14:38:

RewriteCond %{REQUEST_URI} и вперед...
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
alexey84
index.php не входит, ссылки то имеют вид test.ru
Да ну?!
Перечитайте документацию про mod_rewrite

-~{}~ 19.07.07 13:53:

а именно что такое {REQUEST_URI}

-~{}~ 19.07.07 13:53:

хотя и дак должно быть понятно
 

alexey84

phplancer
REQUEST_URI - Ресурс, запрошенный в строке HTTP запроса.
я понимаю одно что строка RewriteRule ^(.*)$ index.php?site=1&query_string=$1 [L,QSA] у меня зацикливается, поэтому получается такой QUERY_STRING но как его исправить я реально не могу понять
 

alexey84

phplancer
аааааааааааааааа
спасибо!
блин пол дня убил а так все просто оказалось!
 
Сверху