.htaccess arquivo não executando e erro interno do servidor

0

Estou usando o ubuntu 14.04 e tenho o ambiente LAMP. Eu tenho um dos projetos em dir / var / www / html / project1 . Não é possível acessar o arquivo .htaccess para reescrever as regras de URL.

Para isso eu tenho que mudar no arquivo /etc/apache2/apache2.conf

 <Directory /var/www/>
      Options Indexes FollowSymLinks
      AllowOverride All       # change None to All
      Order allow,deny
      allow from all
      Require all granted
 </Directory>

Mas depois dessa mudança meu servidor Apache dá um erro "Internal Server error" e o apache dá erro para qualquer website (projeto).

E se eu alterar 'AllowOverride None' , o site está sendo executado corretamente, mas o arquivo .htaccess não funciona.

O 'Internal Server Error' é devido ao arquivo .htaccess em outro projeto que é assim

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L] 

Não consigo entender nada no arquivo htaccess. Plz me ajudar a reescrever o arquivo htaccess e o significado do mesmo.

Obrigado

    
por Farman Ali 25.06.2015 / 15:04

1 resposta

2

Em vez de alterar a diretiva no bloco padrão, você deve usar um bloco separado especificamente para o diretório do projeto:

<Directory /var/www/html/project1>
  Options Indexes FollowSymLinks
  AllowOverride All
  Order allow,deny
  allow from all
  Require all granted
</Directory>

Isso só permitirá que arquivos .htaccess sejam usados neste diretório específico.

O erro 500 que você está obtendo provavelmente se deve a alguma sintaxe ruim em um arquivo .htaccess. Seria útil se você nos mostrasse o que você tem em todos os arquivos .htaccess.

Como alternativa, você pode procurar nos logs de erros do Apache em /var/log/apache2/error.log para obter informações mais específicas sobre o erro.

    
por 25.06.2015 / 19:41