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

0

Eu estou usando o Ubuntu 14.04 e tenho ambiente LAMP. Eu tenho um do projeto em dir / var / www / html / project1 . Não pode acessar o .htaccess arquivo para reescrever regras de url.

Para isso eu tenho que mudar em /etc/apache2/apache2.conf Arquivo

 <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 site (projeto).

E se eu mudar 'AllowOverride None' então o site está sendo executado corretamente Mas o arquivo .htaccess não funciona.

o 'Erro do Servidor Interno' é 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 significado do mesmo.

obrigado

Farman Ali
fonte

Respostas:

2

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

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

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

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

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

Jacob Margason
fonte
Obrigado, resolve o meu problema. Mas eu acho que um dos meus arquivos htaccess causa Erro do Servidor Interno isto é como abaixo
Farman Ali