Баги с mod_rewrite

d1m

Новичок
Баги с mod_rewrite

Взял друпаловские правила, через vhost_alias_mod сделал вирт. динамический хостинг (пробовал vhost'ы руками прописать - тоже Жэ).

RewriteCond %{HTTP_HOST} ^(.+)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://%1/index.php?q=$1 [L,QSA]


<?
print_r($_GET);
?>
<br><br>
<a href="/some">Some</a>
<br><br>
<a href="/">Main</a>

При клике на Some УРЛ должен в строке адреса превратится в http://test.devil/some, но превращается он в http://test.devil/index.php?q=some.

Кто скажет, почему? Ведь не должно такого быть.

Хост: Ubuntu Edgy, apache 2.0


ЗЫ: родные друпалоские правила

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

приводят к 500 Internal Server Error. В логах
Request exceeded the limit of 10 internal redirects due to probable configuration error.
Увеличить лимит - не выход, да и не помогает.
 

Андрейка

Senior pomidor developer
d1m
1. объясни плиз что означает твое L и QSA в RewriteRule ?
2. как думаешь, что произойдет после того, как будет применено правило? (наводящий вопрос - как думаешь, апач попытается еще раз применить его? )
 

d1m

Новичок
L - что правило последнее.
QSA - сам толком не понял, в описании query string append. Без него тоже не работает.
Сомневаюсь, что апач попытается его применить еще раз, ведь он фактически этим правилом переадресовывает все на index.php.

-~{}~ 16.10.06 10:05:

Получилось.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://%1/index.php?q=$1 [L,QSA]

Так работает.
Но хоть убейте, не пойму как и почему.
 
Сверху