2010-11-06 2 views
15

У меня есть файл .htaccess в каталоге, но он не имеет никакого эффекта (независимо от того, что я в него вложил).Почему не происходит .htaccess?

Мой файл apache2.conf содержит

AccessFileName .htaccess 

<Directory "/var/www"> 
    AllowOverride All 
</Directory> 

Он уже сказал AccessFileName .htaccess но я добавил каталог маркировать себя, таким образом, я не уверен, если это правильно.

Благодарим за любые советы и просьбы о предоставлении дополнительной информации.

Мой .htaccess содержание (сейчас)

Options +FollowSymlinks 
RewriteEngine on 

RewriteRule .* page.php?arg=$0 
+0

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

+0

Он помещается в каталог, к которому я обращаюсь (в этом случае/var/www/avesta /). Я уже разместил много фиктивных файлов .htaccess. Я знаю, что это не анализируется :) – Hubro

ответ

19

Вы находитесь на Debian, в соответствии с вашими тегами. Сайт по умолчанию, по крайней мере на Lenny в конфигурации по умолчанию apache2, определен в/etc/apache2/sites-available/000-default. Это значение по умолчанию имеет AllowOverride None в разделе каталога/var/www. Таким образом, это может быть переопределение вашего apache2.conf.

Конечно, вам необходимо убедиться, что сайт включен. Если существует/etc/apache2/sites-enabled/000-default и является символической ссылкой, указывающей на/etc/apache2/sites-available/000-default, тогда сайт включен. Канонический способ включения такого сайта - от root, a2ensite 000-default.

Наконец, поймите, что если у вас есть доступ к основной конфигурации по соображениям производительности, вы должны настроить свой сайт, используя основную конфигурацию (или настройки сайта в/etc/apache2/sites-available), а не в .htaccess , См. http://httpd.apache.org/docs/2.2/howto/htaccess.html для получения дополнительных пояснений.

+0

Спасибо, я изменил 'AllowOverride' на All in 000-default. Теперь я получаю внутреннюю ошибку сервера даже без аргументов перезаписи. Есть идеи? (.htaccess теперь содержит только 'Options + FollowSymlinks' и' RewriteEngine on') – Hubro

+0

Существует несколько причин, которые могут произойти. У вас есть такая же ошибка, если вы вообще удалите .htaccess? Также обратите внимание, что вам необходимо перезагрузить Apache, чтобы прочитать новый конфиг. Обычно я просто перезагружаюсь: с правами root, /etc/init.d/apache2. Но использование «перезагрузки», а не «перезагрузка» также должно работать. – Andrew

+0

Я перезапустил apache, да. Он работает с пустым файлом .htaccess, но не сразу после добавления «RewriteEnging on» – Hubro

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