Forum Webscript.Ru

Общие => Веб Сервера => Тема начата: softsafer от 15 Мая 2004, 06:31:01

Название: mod_rewrite зацикливается
Отправлено: softsafer от 15 Мая 2004, 06:31:01
Народ, как сделать чтобы rewrite только один раз выполнял правила.

Я хочу сделать перенаправление с поддомена на папку:
koko.localhost -> localhost/home/koko

вот .htaccess
RewriteEngine on

RewriteCond   %{HTTP_HOST}                 ^[^.]+\\.localhost$
RewriteRule   ^(.+)                        %{HTTP_HOST}/$1          [C]
RewriteRule   ^([^.]+)\\.localhost(.*) /home/$1$2

Выдаётся ошибка:
[Sat May 15 13:13:21 2004] [error] [client 127.0.0.1] mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use \'RewriteOptions MaxRedirects\' to increase the limit if neccessary.

А вот половина rewrite.log

127.0.0.1 - - [15/May/2004:13:13:20 +1000] [localhost/sid#5d42e8][rid#672500/initial] (3) [per-dir c:/data/webshare/root/htdocs/] strip per-dir prefix: c:/data/webshare/root/htdocs/index.htm -> index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#672500/initial] (3) [per-dir c:/data/webshare/root/htdocs/] applying pattern \'^(.+)\' to uri \'index.htm\'
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#672500/initial] (4) RewriteCond: input=\'koko.localhost\' pattern=\'^[^.]+\\.localhost$\' => matched
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#672500/initial] (2) [per-dir c:/data/webshare/root/htdocs/] rewrite index.htm -> koko.localhost/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#672500/initial] (3) [per-dir c:/data/webshare/root/htdocs/] add per-dir prefix: koko.localhost/index.htm -> c:/data/webshare/root/htdocs/koko.localhost/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#672500/initial] (3) [per-dir c:/data/webshare/root/htdocs/] strip per-dir prefix: c:/data/webshare/root/htdocs/koko.localhost/index.htm -> koko.localhost/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#672500/initial] (3) [per-dir c:/data/webshare/root/htdocs/] applying pattern \'^([^.]+)\\.localhost(.*)\' to uri \'koko.localhost/index.htm\'
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#672500/initial] (2) [per-dir c:/data/webshare/root/htdocs/] rewrite koko.localhost/index.htm -> /home/koko/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#672500/initial] (1) [per-dir c:/data/webshare/root/htdocs/] internal redirect with /home/koko/index.htm [INTERNAL REDIRECT]
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#67a968/initial/redir#1] (3) [per-dir c:/data/webshare/root/htdocs/] strip per-dir prefix: c:/data/webshare/root/htdocs/home/koko/index.htm -> home/koko/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#67a968/initial/redir#1] (3) [per-dir c:/data/webshare/root/htdocs/] applying pattern \'^(.+)\' to uri \'home/koko/index.htm\'
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#67a968/initial/redir#1] (4) RewriteCond: input=\'koko.localhost\' pattern=\'^[^.]+\\.localhost$\' => matched
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#67a968/initial/redir#1] (2) [per-dir c:/data/webshare/root/htdocs/] rewrite home/koko/index.htm -> koko.localhost/home/koko/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#67a968/initial/redir#1] (3) [per-dir c:/data/webshare/root/htdocs/] add per-dir prefix: koko.localhost/home/koko/index.htm -> c:/data/webshare/root/htdocs/koko.localhost/home/koko/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#67a968/initial/redir#1] (3) [per-dir c:/data/webshare/root/htdocs/] strip per-dir prefix: c:/data/webshare/root/htdocs/koko.localhost/home/koko/index.htm -> koko.localhost/home/koko/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#67a968/initial/redir#1] (3) [per-dir c:/data/webshare/root/htdocs/] applying pattern \'^([^.]+)\\.localhost(.*)\' to uri \'koko.localhost/home/koko/index.htm\'
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#67a968/initial/redir#1] (2) [per-dir c:/data/webshare/root/htdocs/] rewrite koko.localhost/home/koko/index.htm -> /home/koko/home/koko/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#67a968/initial/redir#1] (1) [per-dir c:/data/webshare/root/htdocs/] internal redirect with /home/koko/home/koko/index.htm [INTERNAL REDIRECT]
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#675928/initial/redir#2] (3) [per-dir c:/data/webshare/root/htdocs/] add path-info postfix: c:/data/webshare/root/htdocs/home/koko/home -> c:/data/webshare/root/htdocs/home/koko/home/koko/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#675928/initial/redir#2] (3) [per-dir c:/data/webshare/root/htdocs/] strip per-dir prefix: c:/data/webshare/root/htdocs/home/koko/home/koko/index.htm -> home/koko/home/koko/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#675928/initial/redir#2] (3) [per-dir c:/data/webshare/root/htdocs/] applying pattern \'^(.+)\' to uri \'home/koko/home/koko/index.htm\'
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#675928/initial/redir#2] (4) RewriteCond: input=\'koko.localhost\' pattern=\'^[^.]+\\.localhost$\' => matched
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#675928/initial/redir#2] (2) [per-dir c:/data/webshare/root/htdocs/] rewrite home/koko/home/koko/index.htm -> koko.localhost/home/koko/home/koko/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#675928/initial/redir#2] (3) [per-dir c:/data/webshare/root/htdocs/] add per-dir prefix: koko.localhost/home/koko/home/koko/index.htm -> c:/data/webshare/root/htdocs/koko.localhost/home/koko/home/koko/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#675928/initial/redir#2] (3) [per-dir c:/data/webshare/root/htdocs/] add path-info postfix: c:/data/webshare/root/htdocs/koko.localhost/home/koko/home/koko/index.htm -> c:/data/webshare/root/htdocs/koko.localhost/home/koko/home/koko/index.htm/koko/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#675928/initial/redir#2] (3) [per-dir c:/data/webshare/root/htdocs/] strip per-dir prefix: c:/data/webshare/root/htdocs/koko.localhost/home/koko/home/koko/index.htm/koko/index.htm -> koko.localhost/home/koko/home/koko/index.htm/koko/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#675928/initial/redir#2] (3) [per-dir c:/data/webshare/root/htdocs/] applying pattern \'^([^.]+)\\.localhost(.*)\' to uri \'koko.localhost/home/koko/home/koko/index.htm/koko/index.htm\'
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#675928/initial/redir#2] (2) [per-dir c:/data/webshare/root/htdocs/] rewrite koko.localhost/home/koko/home/koko/index.htm/koko/index.htm -> /home/koko/home/koko/home/koko/index.htm/koko/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#675928/initial/redir#2] (1) [per-dir c:/data/webshare/root/htdocs/] internal redirect with /home/koko/home/koko/home/koko/index.htm/koko/index.htm [INTERNAL REDIRECT]
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#677dd0/initial/redir#3] (3) [per-dir c:/data/webshare/root/htdocs/] add path-info postfix: c:/data/webshare/root/htdocs/home/koko/home -> c:/data/webshare/root/htdocs/home/koko/home/koko/home/koko/index.htm/koko/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#677dd0/initial/redir#3] (3) [per-dir c:/data/webshare/root/htdocs/] strip per-dir prefix: c:/data/webshare/root/htdocs/home/koko/home/koko/home/koko/index.htm/koko/index.htm -> home/koko/home/koko/home/koko/index.htm/koko/index.htm
127.0.0.1 - - [15/May/2004:13:13:21 +1000] [localhost/sid#5d42e8][rid#677dd0/initial/redir#3] (3) [per-dir c:/data/webshare/root/htdocs/] applying pattern \'^(.+)\' to uri \'home/koko/home/koko/home/koko/index.htm/koko/index.htm\'
Название: mod_rewrite зацикливается
Отправлено: alm от 28 Мая 2004, 12:40:10
Какая то у тебя избыточная конструкция. Напиши так

RewriteEngine on
RewriteCond %{HTTP_HOST} ^([^.]+)\\.localhost$
RewriteRule ^(.+) /home/%1$1 [L]

В %1 будет находиться koko
В $1 будет находиться /index.htm
[L] сзади обязательно, чтобы не циклился