URL redireciona para outra página no mesmo site

4

Basicamente, quero redirecionar todas as solicitações para o meu domínio para uma página específica. Por exemplo, redirecione todas as solicitações para a página X, a menos que você já esteja na página X, caso em que você deve apenas carregá-la. Mas minhas soluções apenas criam um loop infinito: /

Eu tentei ...

RewriteCond %{REQUEST_URI} !=/underconstruction.html
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !^/underconstruction.html
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
    
por David Pashley 27.06.2009 / 00:57

3 respostas

1

A partir do que você descreveu, você quer uma regra de reescrita mais parecida com:

RewriteRule ^(.*)$ $LINK [L,R=301]

Em outras palavras, perca o $ 1. Isso é anexar o URL original ao novo URL, o que resulta em um loop infinito.

(eu não verifiquei os condicionais, mas um deles deve funcionar, eu acho)

    
por 27.06.2009 / 01:18
12

O problema com os exemplos acima é que as linhas RewriteRule não redirecionam para underconstruction.html, elas redirecionam aproximadamente para a mesma URL novamente (desde que $ 1 corresponde ao (. *)).

Este exemplo redirecionará 301 todos os URLs para "/underconstruction.html":

RewriteEngine On
RewriteCond %{REQUEST_URI} !=/underconstruction.html
RewriteRule ^ /underconstruction.html [R=301]

(que se traduz como "Se o URI não for /underconstruction.html, redirecione para /underconstruction.html")

    
por 27.06.2009 / 01:21
1

Que tal

<VirtualHost *:80>
   ...
   RedirectMatch !^/underconstruction.html http://yourdomain/underconstruction.html
   ...
</VirtualHost>
    
por 27.06.2009 / 06:36