Файл.htaccess не запущен и внутренняя ошибка сервера

Я использую Ubuntu 14.04 и у меня есть среда LAMP. У меня есть один проект в dir / var / www / html / project1. Он не может получить доступ к файлу .htaccess для перезаписи правил URL.

Для этого мне нужно изменить в файле /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>

Но после этого изменения мой сервер Apache выдает ошибку "Внутренняя ошибка сервера", а apache выдает ошибку для любого веб-сайта (проекта).

И если я изменю "AllowOverride None", то сайт работает правильно, но файл.htaccess не работает.

"Внутренняя ошибка сервера" происходит из-за файла.htaccess в другом проекте, который похож на этот

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] 

Я ничего не могу понять в файле htaccess. Пожалуйста, помогите мне переписать файл htaccess и его значение.

Спасибо

1 ответ

Решение

Вместо изменения директивы в блоке по умолчанию вы должны использовать отдельный блок специально для вашего каталога проекта:

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

Это позволит использовать только файлы.htaccess в этом конкретном каталоге.

Ошибка 500, которую вы получаете, вероятно, вызвана неправильным синтаксисом в файле.htaccess. Было бы полезно, если бы вы показали нам, что у вас есть во всех файлах.htaccess.

В качестве альтернативы вы можете посмотреть в журналах ошибок Apache /var/log/apache2/error.log для получения более конкретной информации об ошибке.

Другие вопросы по тегам