Подтвердить что ты не робот

.htaccess файл не читается ( "Параметры -Indexes" в файле .htaccess не работают)

Я создал файл .htaccess только с следующей строкой:

Параметры -Indexes

Однако индекс показывается для каталога.

Я только что установил Apache2 и использую все значения по умолчанию (я не изменял apache2.conf или httpd.conf).

ОС: Ubuntu 12.04 (Precise Pangolin)
Версия Apache2: Server version: Apache/2.2.22 (Ubuntu) Server built: Feb 13 2012 01:51:56

$ls -l.htaccess
-rwxr-xr-x.htaccess

EDIT:

Я взял совет lanzz и добавил тарабарщину в файл .htaccess и обнаружил, что файл .htaccess не читается.

4b9b3361

Ответ 1

Чтобы получить эту работу, я добавил следующее в /etc/apache2/httpd.conf (который является файлом нулевой длины по умолчанию при установке Apache), а затем перезапустил Apache. Теперь Options -Indexes в файле .htaccess работает по желанию. Вот минимальный минимум, необходимый для его работы:

/etc/apache2/httpd.conf :

<VirtualHost *:80>
        DocumentRoot /var/www
        <Directory / >
        </Directory>
</VirtualHost>

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

Обратите внимание, что AllowOveride по умолчанию соответствует All, за комментарий Эвана Мулавского, поэтому он не требуется в минимальном наборе строк httpd.conf выше.

Ответ 2

Вы должны проверить, что конфигурация Apache позволяет выполнить .htaccess. В вашей конфигурации virtualhost должна быть строка:

AllowOverride All

Если этого не происходит, то почему .htaccess не вступает в силу.

Ответ 3

У меня была та же проблема. Я использовал виртуальный хост, поэтому я изменил httpd-vhosts.conf, поэтому, если вы используете его, это может помочь

Если вы настроите ссылку на хост, тег каталога будет таким же, как ваш корень документа

<VirtualHost *:8080>
ServerName somelocalserver
DocumentRoot "C:/Websites/htdocs/yoursite"
<Directory "C:/Websites/htdocs/yoursite">
    Options FollowSymLinks
    AllowOverride All
</Directory>

Мне понадобилось AllowOverride All для распознавания файла .htaccess.

Изменить

Мне также нужно было добавить путь к корню сайта в самом теге каталога. т.е. <Directory "C:/Websites/htdocs/yoursite">. Это было значение по умолчанию в образцах, которые я использовал.

Ответ 4

Как нет файла httpd.conf больше, что вам нужно сделать на VPS:

  • Перейдите к /etc/apache2/sites-enabled/
  • Сделайте ls, чтобы найти файл для веб-сайта, который вы ищете.
  • Отредактируйте соответствующий файл с помощью nano THE_CONF_FILE или любым другим редактором, который вы хотите
  • Измените все значения AllowOverride None, которые вы видите в разных <Directory> ... </Directory> до AllowOverride All
  • Сохраните файл и закройте его

  • Теперь вам нужно включить перезапись модуля, выполнив команду: sudo a2enmod rewrite

  • И, наконец, чтобы активировать новую конфигурацию, вам нужно запустить: service apache2 restart

Теперь это будет как шарм!

Ответ 5

Если у вас есть

AllowOverride None

Измените это на:

AllowOverride All

в вашем httpd.conf или в вашем файле виртуального хоста по умолчанию в /И т.д./apache2/сайты-доступные/... конф

Ответ 6

Я решил эту проблему на RHEL, отредактировав файл /etc/http/conf/httpd.conf Я изменил все

AllowOverride None

Для

AllowOverride All

Также вы можете проверить httpd.conf AllowOverride, выполнив следующую команду в RHEL

grep -i AllowOverride /etc/conf/conf/httpd.conf

Ответ 7

Кроме того, помимо изменения AllowOverride All в файле конфигурации vhost вам также может потребоваться добавить следующее в начале файла .htaccess:

RewriteEngine On
RewriteBase /

В противном случае может пока не обнаруживаться переписывание или переадресация.