mod_rewrite sempre dá 10 redirecionamentos internos e falha

1

Eu tenho um simples .htaccess que não consegue redirecionar corretamente por algum motivo:

RewriteEngine on
RewriteBase /
RewriteRule ^.*$ /test.php [L]

Existe uma entrada de registro:

[Tue Nov 16 17:04:12 2010] [error] [client 213.141.155.85] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
[Tue Nov 16 17:04:12 2010] [debug] core.c(3053): [client 213.141.155.85] r->uri = /test.php
[Tue Nov 16 17:04:12 2010] [debug] core.c(3059): [client 213.141.155.85] redirected from r->uri = /test.php
[Tue Nov 16 17:04:12 2010] [debug] core.c(3059): [client 213.141.155.85] redirected from r->uri = /test.php
[Tue Nov 16 17:04:12 2010] [debug] core.c(3059): [client 213.141.155.85] redirected from r->uri = /test.php
[Tue Nov 16 17:04:12 2010] [debug] core.c(3059): [client 213.141.155.85] redirected from r->uri = /test.php
[Tue Nov 16 17:04:12 2010] [debug] core.c(3059): [client 213.141.155.85] redirected from r->uri = /test.php
[Tue Nov 16 17:04:12 2010] [debug] core.c(3059): [client 213.141.155.85] redirected from r->uri = /test.php
[Tue Nov 16 17:04:12 2010] [debug] core.c(3059): [client 213.141.155.85] redirected from r->uri = /test.php
[Tue Nov 16 17:04:12 2010] [debug] core.c(3059): [client 213.141.155.85] redirected from r->uri = /test.php
[Tue Nov 16 17:04:12 2010] [debug] core.c(3059): [client 213.141.155.85] redirected from r->uri = /test.php
[Tue Nov 16 17:04:12 2010] [debug] core.c(3059): [client 213.141.155.85] redirected from r->uri = /blabla

Existe URL que estou tentando acessar é / blabla

Parece reescrever corretamente, mas a opção [L] de alguma forma não tem efeito. Como isso pode ser?

o host virtual é configurado assim:

<VirtualHost *:80>
ServerName www.mx-key.ru
ServerAlias mx-key.ru www.mx-key.ru
ServerAdmin [email protected]
DocumentRoot /home/mxkey/mx-key.ru/www
DirectoryIndex index.html index.htm index.php index.php5 index.php4 index.php3 index.shtml
ErrorLog /home/mxkey/mx-key.ru/logs/httpd_error.log
CustomLog /home/mxkey/mx-key.ru/logs/httpd_access.log "%v %h %l %u %t \"%r\" %>s %b"
LogLevel Debug
<IfModule mod_fastcgi.c>
        Options +ExecCGI
        FastCgiExternalServer /home/mxkey/mx-key.ru/www/php-fpm.handler -socket /home/mxkey/php-fpm.sock -idle-timeout 600
        AddType application/x-httpd-fastphp5 .php
        Action application/x-httpd-fastphp5 /php-fpm.handler
</IfModule>
</VirtualHost>
    
por Vladislav Rastrusny 16.11.2010 / 15:24

1 resposta

1

Você precisa especificar RewriteCond também - seu RewriteRule está sempre correspondendo a tudo (por causa de ^.*$ ). Dê uma olhada aqui:

Você precisa excluir o destino de RewriteRule , que é /test.php .

Algo como isso deve funcionar:

RewriteCond %{REQUEST_URI} !^/test.php$

que diz algo como "reescrever apenas se o URI de solicitação não começar com /test.php".

    
por 16.11.2010 / 15:37