RewriteCond no arquivo .htaccess me fornece delimitadores de sinalizadores ruins

1

Estou atualizando um site e uso este arquivo .htaccess para mostrar a página de manutenção:

#MAINTENANCE-PAGE REDIRECT
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.0 # Bogus IP address for posting here
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.0 # Bogus IP address for posting here
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^(.*)$ http://www.mysite.no/maintenance.html [R=307,L]

Isso abre a página de manutenção para todos os usuários, exceto os dois endereços IP que adicionei. Eles recebem um Internal Server Error . Eu usei o mesmo script em outro site, e isso funcionou bem.

Olhando para o log de erros, vejo o seguinte:

/var/www/vhosts/mysite.no/httpdocs/.htaccess: RewriteCond: bad flag delimiters 

Se eu remover meu arquivo .htaccess, posso trabalhar com meu site muito bem.

Meu site está hospedado em uma VPN usando o CentOS 5.

Como posso resolver este problema?

    
por Steven 02.11.2010 / 21:35

2 respostas

1

Acredito que você tenha que usar o sinal [OR] para regras de cadeia como esta:

#MAINTENANCE-PAGE REDIRECT
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.0 [OR]
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.0 [OR]
RewriteCond %{REQUEST_URI} !^/maintenance\.html$ 
RewriteRule ^(.*)$ http://www.mysite.no/maintenance.html [R=307,L]

Nos documentos do apache, está na parte inferior desta seção como um exemplo: link

Além disso, você pode usar as diretivas RewriteLog e RewriteLogLevel 3 para possivelmente obter mais informações.

    
por 02.11.2010 / 22:14
0

Algumas coisas para tentar / verificar:

  • Verifique se mod_rewrite está carregado e ativado no apache.
  • Verifique se a substituição FileInfo é permitida (com AllowOverride ) para .htaccess arquivos.
  • Remova os comentários das suas RewriteCond linhas.
por 02.11.2010 / 22:18