Ответ 1
минимальная конфигурация для вашего .htaccess:
AllowOverride FileInfo Options
позволяющая работать с любой конфигурацией:
AllowOverride All
Я загрузил .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
минимальная конфигурация для вашего .htaccess:
AllowOverride FileInfo Options
позволяющая работать с любой конфигурацией:
AllowOverride All
Предположим, что ваш 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
, которую вы получаете.
Просто идея, это случилось со мной, и я потерял много времени, пытаясь ее решить.
Если у вас есть каталог типа d:/web/my-sites/some-site/
И вы поместите .htaccess
на d:/web/my-sites/some-site/.htaccess
(где он должен быть).
Если у вас есть ANY .htaccess
файлы перед этим каталогом, Apache считывает эти файлы и блокирует выполнение всего пути, вызывая внутреннюю ошибку сервера.
I.E.: У вас d:/web/my-sites/.htaccess
В httpd версии 2.4 (2.4.3 и 2.4.4) ознакомьтесь с /etc/httpd/conf.d/wordpress.conf Существует одна запись для: ....
Изменить: "Параметры разрешающей проверки" в "AllowOverride All"
в wordpress.conf также в дополнение к изменению httpd.conf. Перезагрузите сервер http до того, как изменения вступят в силу.
Попробуйте изменить файл 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
Кроме того, просто убедитесь, что вы редактируете правильный файл конфигурации. Я создал файл в /etc/apache 2/users/USERNAME.conf, но редактировал /etc/apache 2/httpd.conf.
Сработал файл USERNAME.conf.
Я получал этот тип ошибки от экземпляра 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.
вы можете использовать что-то вроде этого в файле .htaccess:
RewriteEngine on
RewriteCond $1 !^(index\.php|html|test)
RewriteRule ^(.*)$ /index.php/$1 [L]
этот код просто означает, что все, что не указывает на index.php или html или test, должно быть направлено на index.php!
Надеюсь, что это будет полезно!