2012-01-22 3 views
0

Файл .htaccess не работает. Я проверил, что он находится в корневом каталоге. Я также подтвердил, что это правильный код. Когда я набираю случайные буквы/цифры в .htaccess, я не получаю ошибку 500. Когда я открываю свой журнал ошибок apache, он дает мне эту ошибку:.htaccess не работает как ожидалось

[Mon Jan 16 20:28:37 2012] [warn] Init: Session Cache is not configured [hint: SSLSessionCache] 
[Mon Jan 16 20:28:41 2012] [notice] Digest: generating secret for digest authentication ... 
[Mon Jan 16 20:28:41 2012] [notice] Digest: done 
[Mon Jan 16 20:28:44 2012] [notice] Apache/2.2.14 (Unix) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l PHP/5.3.1 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations 

Я не знаю, что делать.

http.conf:

<Directory /> 
Options FollowSymLinks 
AllowOverride All 
Order deny,allow 
Deny from all 
</Directory> 
+1

Что означает «не работает»? Какое ожидаемое поведение? И каково реальное поведение? И каково содержимое вашего файла .htaccess? – Arjan

+0

@Arjan, пожалуйста, просмотрите мой обновленный вопрос. спасибо – kirby

+0

«И какое содержимое вашего файла .htaccess?» – Gerben

ответ

3

Есть несколько возможных причин, ваша случайная, недействителен, .htaccess файл не будет вызывать ошибку HTTP 500 (внутренняя ошибка сервера):

  • Неправильное имя файла , Это должно быть .htaccess. Первый символ - точка. Последний символ - это нижний регистр. Скрытые расширения могут вызвать проблемы, поскольку неправильное имя файла может показаться правильным.
  • Неверное расположение файла. Попробуйте разместить файл рядом с вашими html-файлами в одной папке. Если это сработает, вы можете переместить файл в одну папку и повторите попытку.
  • Конфигурация Apache не позволяет использовать файлы .htaccess. Если для параметра конфигурации AllowOverride установлено значение None в файлах конфигурации apache (для указанного домена), то Apache не будет искать файлы .htaccess.

Также обратите внимание, что файлы .htaccess игнорируются при доступе к файлам с использованием протокола file://.

Update

Пути, используемые в .htaccess относятся к путям файловой системы, а не URL-адреса пути. Основываясь на размещенном вами .htaccess, никто не имеет доступа к файлам на вашем веб-сервере. Я хотел бы предложить что-то вроде:

<Directory /> 
    # Security first, deny everything that's not explicitly allowed. 
    AllowOverride None 
    Order deny, allow 
    Deny from all 
</Directory> 

<Directory /path/to/webroot> 
    # This is the part that should be accessible 
    Options FollowSymLinks 
    AllowOverride All 
    Order allow, deny 
    Allow from all 
</Directory> 

Ваш файл .htaccess должен быть в /path/to/webroot Обратите внимание, что вы должны изменить /path/to/webroot что-то дельное, что соответствует вашей файловой системы.

+0

Я проверил все эти и все еще нет ошибки 500. может быть что-нибудь еще? Мне не нужно включать что-либо в мои html-файлы, не так ли? Я просто разместил .htaccess внутри моего корневого каталога. – kirby

+0

также есть еще два http.conf в папке apache2, http.conf.save и http.conf.save.1. Я просто хочу проверить, что эти файлы ничего не изменят. Я не создавал файлы. там было только что. – kirby

+0

Эти файлы, вероятно, являются резервными файлами, поэтому их не должно повредить. – Arjan

Смежные вопросы