Подтвердить что ты не робот

.htaccess: RewriteEngine не разрешено здесь

Я загрузил .htaccess на сервер и получил Ошибка 500 (Внутренняя ошибка сервера).

И в журнале ошибок произошла ошибка:

.../. htaccess: RewriteEngine здесь не разрешено

Но mod_rewrite.so включен.

Итак, мне нужно изменить

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

к

<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

в файле /etc/httpd/conf/httpd.conf?

Или это может быть что-то еще? Файл .htaccess должен быть в порядке, потому что он отлично работает на моем локальном хосте. Я просто не хочу ничего прикручивать.

Вот часть моего файла .htaccess:

Options All -Indexes

Options +FollowSymLinks

RewriteEngine On
4b9b3361

Ответ 1

минимальная конфигурация для вашего .htaccess:

AllowOverride FileInfo Options

позволяющая работать с любой конфигурацией:

AllowOverride All

Ответ 2

Предположим, что ваш DOCUMENT_ROOT /home/foo/web, затем введите эту конфигурацию в файл httpd.conf:

<Directory "/home/foo/web">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

Это должно позаботиться об ошибке RewriteEngine is not allowed, которую вы получаете.

Ответ 3

Просто идея, это случилось со мной, и я потерял много времени, пытаясь ее решить.

Если у вас есть каталог типа d:/web/my-sites/some-site/

И вы поместите .htaccess на d:/web/my-sites/some-site/.htaccess (где он должен быть).

Если у вас есть ANY .htaccess файлы перед этим каталогом, Apache считывает эти файлы и блокирует выполнение всего пути, вызывая внутреннюю ошибку сервера.

I.E.: У вас d:/web/my-sites/.htaccess

Ответ 4

В httpd версии 2.4 (2.4.3 и 2.4.4) ознакомьтесь с /etc/httpd/conf.d/wordpress.conf Существует одна запись для: ....

Изменить: "Параметры разрешающей проверки" в "AllowOverride All"

в wordpress.conf также в дополнение к изменению httpd.conf. Перезагрузите сервер http до того, как изменения вступят в силу.

Ответ 5

Попробуйте изменить файл username.conf на Mac в /etc/apache2/users/username.conf на

<Directory "/Users/akyoo/Sites/">
   AllowOverride All
   Options Indexes MultiViews FollowSymLinks
   Require all granted
</Directory>

Мой файл .htaccess выглядит так

#Allow from all
Options +FollowSymLinks
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

Это прекрасно работает для меня. Решение для пользователей Ubuntu

Ответ 6

Кроме того, просто убедитесь, что вы редактируете правильный файл конфигурации. Я создал файл в /etc/apache 2/users/USERNAME.conf, но редактировал /etc/apache 2/httpd.conf.

Сработал файл USERNAME.conf.

Ответ 7

Я получал этот тип ошибки от экземпляра Google Cloud после проверки журналов из /var/log/apache2/error.log

.htaccess: переписатьEngine здесь запрещено

Чтобы избавиться от вышеуказанной ошибки & 500 Internal Server Error, выполните следующие простые шаги

sudo nano /etc/apache2/apache2.conf

Затем добавьте эти фрагменты строк

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

После внесения этого изменения обязательно перезапустите сервер:

sudo service apache2 restart

Это помогло мне избавиться от 500 Internal Server Error, размещенной на экземпляре Google Cloud.

Ответ 8

вы можете использовать что-то вроде этого в файле .htaccess:

RewriteEngine on
RewriteCond $1 !^(index\.php|html|test)
RewriteRule ^(.*)$ /index.php/$1 [L]

этот код просто означает, что все, что не указывает на index.php или html или test, должно быть направлено на index.php!

Надеюсь, что это будет полезно!