.htaccess: переписатьEngine здесь не разрешено - PullRequest
37 голосов
/ 09 августа 2011

Я загрузил .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

Ответы [ 8 ]

57 голосов
/ 09 августа 2011

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

AllowOverride FileInfo Options

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

AllowOverride All
9 голосов
/ 09 августа 2011

Допустим, ваш 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, которую вы получаете.

4 голосов
/ 18 августа 2016

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

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

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

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

И.Е .: У вас есть d:/web/my-sites/.htaccess

3 голосов
/ 15 мая 2013

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

Изменение: «Параметры AllowOverride» в «AllowOverride All»

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

0 голосов
/ 28 июня 2019

Я получал этот тип ошибки из экземпляра 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 внутренних ошибок сервера, размещенных в экземпляре Google Cloud

0 голосов
/ 13 мая 2015

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

Удаление файла USERNAME.conf сработало.

0 голосов
/ 03 декабря 2014

Попробуйте изменить файл 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

0 голосов
/ 09 августа 2011

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

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

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

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

...