Назад | Перейти на главную страницу

Файл .htaccess вызывает «500 Internal Server Error», но в журнале ошибок нет записи.

Я настроил apache вручную и добавил второй веб-каталог с этим кодом:

Alias /webs c:\webs
<Directory /webs>
    AllowOverride All
</Directory> 

Однако в этом веб-сайте есть файл .htaccess, и доступ к веб-сайту дает ошибку: «500 Internal Server Error», но ничего не записывает в файл журнала ошибок.

Но когда я удаляю файл .htaccess, я не получаю эту ошибку.

Я добавил строку «AllowOverride All» и перезапустил сервер, но это не исправляет ошибку.

Мой .htaccess таков:

RewriteEngine On
RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?params=$1 [L,QSA]

<Files "test">
    Order Allow,Deny
    Allow from all
</Files>

Что мне нужно сделать, чтобы использовать файл .htaccess в этом каталоге?

Включите mod_rewrite на веб-сервере Apache. Также попробуйте это:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?params=$1 [L,QSA]

    <Files "test">
        Order Allow,Deny
        Allow from all
    </Files>
</IfModule>

Если включен mod_rewrite, запускает механизм перезаписи; иначе ничего не делает.

Хорошо, я исправил это, оказалось, что это две другие проблемы, которые я запишу здесь на всякий случай, если это кому-то поможет:

В моем php.ini файл, мне нужно было установить:

display_errors = On

чтобы он отображал ошибки (хотя у меня было "error_reporting = E_ALL & ~ E_STRICT").

Тогда ошибка заключалась в том, что я пытался использовать RedBean с SQLite, и мне нужно было раскомментировать их в моем php.ini файл:

extension=php_pdo_sqlite.dll
extension=php_sqlite3.dll