Обработка файлов htaccess невозможна: ► Файл htaccess — что это, как работает, нюансы использования и настройки

Что такое ошибка 500, когда возникает и как устранить

Ошибка с кодом 500 выдается в том случае, когда причину сбоя нельзя отнести ни к какой другой категории ошибок (502, 503 и т. д.). По сути она означает «что-то произошло, а что — непонятно». В сообщении об ошибке 500, которое выдается на странице браузера, стандартно также нет сведений о ее причинах.

Как же без наличия информации определить и исправить ошибку? На практике чаще всего она вызывается сбоями в одном из основных компонентов сайта:

  • в правах доступа к файлам и каталогам;
  • в файле .htaccess;
  • в скриптах;
  • в CMS (движке сайта).

Сразу отметим, что сбои происходят на стороне сервера, а не клиента. От браузера и операционной системы пользователя здесь ничего не зависит, и нужно искать причину ошибки 500 в конфигурации программного обеспечения сайта.

Для определения причины ошибки:

  • смотрим логи сервера — часто по ним можно понять, на каком этапе произошел сбой;
  • если логи не добавили ясности, или вы не можете их посмотреть — перебирайте все возможные варианты, начиная с тех, которые кажутся наиболее вероятными в вашем случае. Например, если вы не трогали перед возникновением ошибки файл .htaccess, но устанавливали новые плагины на сайт, начать нужно с проверки последнего.

Некорректные права доступа

Каждый каталог и файл на сервере имеет определенную трехзначную кодировку прав доступа к нему. Например, 777 — такой доступ означает, что любой сторонний пользователь может изменять этот файл или папку. Для обеспечения безопасности сервер блокирует файлы, которые имеют такие широкие права доступа. В результате страница сайта не отображается, так как сервер не отдает содержимое нужных файлов, и выдается ошибка 500.

Рекомендуется выставлять права не выше 750 — для папок, и 640 — для исполняемых файлов.

Если вы недавно создавали новый каталог на сервере или загружали новые файлы, у них могут быть слишком широкие права доступа. Проверьте и исправьте их.

Как определить, что ошибка 500 возникла именно из-за этого?

Во-первых, посмотрите, какой вид имеет ошибка на экране браузера. Если вы видите текст «Internal Server Error» — то, скорее всего, дело именно в .htaccess. В случаях сбоев в работе скриптов или CMS текст ошибки обычно выглядит как «HTTP ERROR 500».

Во-вторых, попробуйте добавить в конец наименования файла .htaccess любые символы. Например, переименуйте его в .htaccess2233. Сервер не будет использовать переименованный файл, и сайт будет запускаться без него. Перезагрузите страницу, на которой была ошибка. Если она исчезла — значит, причина в .htaccess.

Что может быть неверным в файле и как это исправить?

Самый простой способ устранить ошибку 500 из-за .htaccess — отменить последние изменения в нем или загрузить файл из бекапа. Если это невозможно или нежелательно, проверьте эти варианты:

  • наличие невидимых неразрывных пробелов (BOM). Если вы изменяли файл, используя не совсем подходящий редактор или кодировку, в него могли быть добавлены такие символы. Пересохраните файл в кодировке UTF-8 и загрузите на сервер;
  • знак # не в начале строки. Этот знак ставится перед началом комментария. Некоторые пытаются добавить комментарий в .htaccess в конце строки, но последние версии Apache не поддерживают такой синтаксис, и в результате вы видите ошибку 500. Для комментария нужно выделять целую строку;
  • некорректные директивы Options. В зависимости от версии серверного ПО, можно их либо полностью закомментировать, либо попробовать исправить Options All -Indexes на директиву Options -Indexes, а Options +FollowSymLinks на директиву Options +SymLinksIfOwnerMatch;
  • некорректные директивы +ExecCGI, IfVersion, AddHandler, php_value, php_flag, MultiViews. Если в вашем файле встречаются такие, попробуйте поочередно их удалить (или закомментировать), проверяя, исчезла ли ошибка.

Сбои в скриптах

Ошибка 500 здесь может вызываться двумя основными причинами:

  • Неверный синтаксис или права доступа скрипта.
  • Слишком долгое выполнение скрипта.

В первом случае:

  • включите отображение ошибок в настройках сервера (или обратитесь к техподдержке, они помогут это сделать).
    Тогда при перезагрузке страницы вы увидите надпись, в которой будет имя файла и конкретная строка в нем, вызывающая ошибку;
  • проверьте, правильно ли вы загружали файлы скриптов через FTP , а лучше перезагрузите их правильным образом — в режиме ASCII. Хотя для некоторых FTP-клиентов, например, для FileZilla, лучше включать двоичный режим передачи: так содержимое файлов будет передано корректно и без искажений;
  • проверьте права доступа к файлу скриптов — они должны быть выставлены на уровне 750 или 755.

Во втором случае проверьте, достаточно ли у вас оперативной памяти на тарифе, посмотрите логи, чтобы определить, как долго выполняется скрипт. Для исправления ошибки 500, возможно, потребуется оптимизировать скрипт для более экономного использования памяти или перейти на расширенный тариф.

Ошибки в CMS

  • Довольно часто ошибка 500 возникает после установки плагинов и дополнений к CMS<. Особенно это актуально на WordPress. Сайт на этом движке, как конструктор, собирается из базы и десятков различных плагинов. При этом плагины могут конфликтовать между собой. Решение простое — отключите дополнения, которые вы недавно устанавливали, и посмотрите, исчезнет ли ошибка. Если да — дело в плагине и лучше поставить другой.
  • Устаревшая версия PHP. Она может конфликтовать с новыми скриптами или плагинами. Для обновления версии обратитесь к специалисту.
  • Обновление версии движка. Такие работы также лучше проводить при поддержке специалистов, которые комплексно проверят совместимость скриптов и дополнений с новой версией. Иначе можем получить конфликт и ошибку 500.

Что такое веб-сервер Apache и как им пользоваться 🍂

12 апреля 2021

Хостинг

31 583

Время чтения ≈ 11 минут

Интернет невозможно представить без всевозможных сайтов. Все они работают за счёт веб-серверов – программ, отвечающих за передачу данных от физических хранилищ до браузеров пользователей.

Веб-сервер работает в качестве «посредника» между пользователем и физическим сервером. При получении запроса от посетителя он ищет необходимую страницу в каталоге с сайтом и отправляет её в ответ. Браузер принимает полученный файл, обрабатывает его и отображает на экране посетителя.

Передача информации веб-сервера выполняется по протоколу HTTP (HyperText Transfer Protocol), изначально созданного для работы с HTML-страницами. Уже позже стало возможным отправлять через HTTP файлы любых типов. В последнее время преобладают сайты, работающие через HTTPS. Это улучшенная версия HTTP, которая отличается от предшественника тем, что поддерживает шифрование трафика TLS/SSL между пользователем и сервером.

Звание самого популярного веб-сервера в мире уже более 25 лет удерживает за собой Apache HTTP Server, который принято называть сокращенно Apache или «Апач». Сегодня программа обслуживает более 40% всех существующих серверов, включая проекты IBM, eBay, PayPal и Facebook.

Рассмотрим причины популярности Apache подробнее. Это не только пополнит копилку знаний об интернет-технологиях, но и поможет сделать правильный выбор веб-сервера для размещения сайта в будущем.

Что это такое

Apache – это свободное программное обеспечение для размещения веб-сервера. Он хорошо показывает себя в работе с масштабными проектами, поэтому заслуженно считается одним из самых популярных веб-серверов. Кроме того, Apache очень гибок в плане настройки, что даёт возможность реализовать все особенности размещаемого веб-ресурса.

История создания

Apache HTTP Server был выпущен в 1995 году разработчиком Робертом Маккулом из Университета штата Иллинойс (UIUC). Продукт возник как доработанная версия другого HTTP-клиента – NCSA HTTPd 1.3, созданного Робертом ранее.

Основой для модификации стали многочисленные «патчи» или программные «заплатки» для NCSA. Именно отсюда (а не от индейского племени апачей) изначально и происходит название Apache. Оно расшифровывается как «a patchy server» или «сервер с патчами».

Разработкой и поддержкой продукта с 1999 года занимается организация Apache Software Foundation (ASF) – сообщество экспертов-энтузиастов со всего мира. Этим же некоммерческим фондом была создана официальная лицензия ПО – Apache License.

В 2000 году ASF представило новую версию Apache 2.0 с полностью переработанной архитектурой, свободной от кода NCSA. С этого момента веб-сервер развивается по двум основным веткам – 1.х и 2.х.

Как устроен Apache

Архитектура

Apache состоит из ядра и динамической модульной системы. Параметры системы изменяются с помощью конфигурационных файлов.

Ядро

Ядро Apache разработано Apache Software Foundation на языке C. Основные функции — обработка конфигурационных файлов, протокол HTTP/HTTPS и загрузка модулей. Ядро может работать без модулей, но будет иметь ограниченный функционал.

Модульная система

Модуль – отдельный файл, подключение которого расширяет изначальный функционал ядра. Они могут включаться в состав ПО при первоначальной установке или подгружаться позже через изменение конфигурационного файла.

Большинство из них отвечает за определенный аспект обработки клиентского запроса – поддержку различных языков программирования, безопасность, кэширование, аутентификацию и т.д. Таким образом, большая задача разбивается на несколько фаз, каждую из которых решает отдельный, узкоспециализированный модуль.

Для Apache существует больше 500 модулей. Многие популярные веб-приложения сразу выпускаются в виде модуля к Apache. Например, ISPmanager и VDSmanager.

Конфигурация

Система конфигурации Apache работает на текстовых файлах с прописанными настройками. Она подразделяется на три условных уровня, для каждого из которых имеется свой конфигурационный файл:

  1. Уровень конфигурации сервера (файл httpd.conf) – основной конфигурационный файл. Действие распространяется на весь механизм веб-сервера.
  2. Уровень каталога (файл .htaccess) – дополнительный конфигурационный файл. Его директивы охватывают только каталог, где расположен файл, а также вложенные подкаталоги.
  3. Уровень виртуального хоста (файл httpd.conf> или extra/httpd-vhosts.conf).

Обычно конфигурационные файлы Apache находятся в папке «conf», а дополнительные конфигурационные файлы во вложенной в нее папке «extra». Внести изменения можно как через редактирование самого файла, так и через командную строку.

Виртуальные хосты

Веб-хост – это компонент сервера, отвечающий за обслуживание одного размещенного на нем объекта (сайта, виртуального сервера). Система виртуальных хостов Apache позволяет одновременно запускать несколько проектов с одного IP-адреса.

В Apache можно установить настройки модуля и ядра, а также вводить лимиты на потребление серверных ресурсов (трафик, RAM, CPU) для каждого виртуального хоста в отдельности. Это технологическая основа всего механизма веб-хостинга.

Достоинства и недостатки Apache

Плюсы

  • Доступность. Это программное обеспечение с открытым исходным кодом. Значит, его может бесплатно использовать или модифицировать любой желающий.
    Разработчики по всему миру создают конфигурации и модули веб-сервера для своих специфических нужд. По этой же причине Apache регулярно получает полезные дополнения, расширяющие его базовый функционал.
  • Гибкость настройки. Apache использует несколько конфигурационных файлов для управления веб-сервером. Это позволяет настроить ПО под узконаправленные задачи.
  • Функциональность. У Apache динамическая модульная структура. Можно быстро подключать дополнительный функционал в виде скачиваемых модулей, даже без обращения к внешним источникам. Это позволяет решать целый комплекс важнейших задач в области безопасности, кэширования, редактирования URL, распределения нагрузки. Благодаря гибридным модулям MPM, Apache может одинаково успешно обслуживать статический и динамический контент. Есть возможность оперативно отключать ненужные модули и ускорять работу веб-сервера
  • Кроссплатформенность. Apache работает как на Windows, так и на всех Unix-подобных системах. Администрирование веб-сервером не имеет серьёзных отличий на разных ОС. Индивидуален только процесс установки и расположение директорий с файлами программы.
  • Совместимость. Apache работает на базе скриптовых или веб-ориентированных языков (PHP, Python, Tcl, Ruby, Perl, ASP), что делает его совместимым с самым широким спектром баз данных и серверного ПО. Многие веб-приложения и инструменты сразу выходят со средствами запуска из-под Apache в виде PHP-модуля. Веб-сервер, поддерживает технологии FastCGI и CGI, позволяющие пользоваться программными продуктами на объектно-ориентированных языках Java, sh, C, C++.
  • Масштабируемость. Подходит для веб-ресурсов любого масштаба. Apache хорошо работает как на одностраничном сайте (лендинге), так и на многостраничном сайте с ежедневной аудиторией в десятки тысяч посетителей.
  • Поддержка пользователей. Apache удерживает первенство популярности среди веб-серверов с 1996 года. За прошедшее время для него создана обширнейшая база документации – как официальной, так и созданной сторонними разработчиками. Готовые, подробно описанные руководства можно найти практически на любой сценарий.

Минусы

  • Производительность. Скорость обработки запросов Apache несколько ниже, по сравнению со своими конкурентами. Гибкость веб-сервера в некоторых случаях вредит производительности. Например, Apache приходится каждый раз считывать несколько конфигурационных файлов на сервере, затрачивая системные ресурсы и время. Но этот и многие другие факторы можно исправить, отключив ненужные опции. Правда в таком случае функциональность Apache не будет сильно отличаться от других веб-серверов.
  • Сложная конфигурация повышает уязвимость. Возможность подключать модули в Apache это не всегда преимущество. Чем больше модулей, тем сложнее становятся настройки. Соответственно, больше шансов допустить критические пробелы в контуре безопасности.
  • Синтаксис конфигов.. В файлах с параметрами программы используются разнообразные переменные, поэтому настройка и управление веб-сервером может показаться сложной новичкам. Упростить администрирование Apache можно с помощью бесплатного инструмента Apache GUI.
  • Излишний функционал. Даже без дополнительных модулей Apache предоставляет пользователям массу возможностей. Правда, большинство использует лишь небольшую часть базового функционала приложения. Поэтому часто после установки приходится тратить время на отключение «лишних» модулей.

Альтернативы Apache

NGINX

Nginx (Engine-X, «энжинкс») — второе по популярности веб-серверное приложение и главный конкурент Apache. Было выпущено в 2004 году под открытой лицензией BSD. Изначально приложение создавалось для решения проблемы масштабирования, известной как «10 тысяч соединений» (С10к). Это значит, что до Nginx веб-сервер не был способен одновременно обрабатывать пользовательские запросы более чем с 10 000 подключений.

У этого веб-сервера асинхронная событийно-ориентированная архитектура (event-driven), которая позволяет добиваться быстрого масштабирования даже при минимальных ресурсах. Вместо того, чтобы создавать новый процесс для каждого пользовательского запроса, Nginx обрабатывает множество соединений в едином потоке.

Nginx отлично подходит для веб-проектов с высокой посещаемостью. Однако веб-сервер не может самостоятельно работать с динамическим контентом. Поэтому его чаще используют для статических веб-сайтов или например, в связке с PHP-FPM или Apache HTTP Server как прокси-сервер.

Lighttpd

Веб-сервер Lighttpd (произносится «лайти») — кроссплатформенное программное обеспечение на языке С. Выпущено в 2003 году под лицензией BSD. «Лайти» работает на операционных системах Windows и семейства Unix/Linux. Приложение поддерживает технологии FastCGI, SCGI, HTTP proxy, Auth, перезаписи URL и AJP (с версии 1.5).

Как и Nginx, изначально «Лайти» создавалось для решения проблемы «С10к». Неудивительно, что его специализация — веб-проекты с большой посещаемостью. В числе компаний, использующих Lighttpd, такие гиганты, как Google, Википедия, Яндекс и Ubuntu.

Microsoft IIS

Internet Information Services (IIS) — набор сервисов для создания веб-сервера от компании Microsoft. Распространяется в комплекте с операционными системами Windows NT как дополнительно устанавливаемый компонент. Веб-сервер поддерживает технологии CGI, FastCGI, ISAPI и SSI.

Главная сила IIS – в глубокой интеграции и поддержке продуктов Microsoft. Его часто выбирают те, чьи ресурсы работают на движке ASP.NET и используют скриптовый язык ASPX. Главный недостаток – жесткая привязка к операционной системе Windows и отсутствие версий для Unix/Linux.

Tomcat

Apache Tomcat — это контейнер сервлетов, который обрабатывает спецификации Java. Например, Java Servlet, Java Server Pages (JSP), Java EL и WebSocket. Продукт был разработан фондом Apache Software Foundation на основе открытой лицензии  Apache License 2.0. Tomcat используется как в качестве самостоятельного веб-сервера, так и в связке с Apache HTTP Server.

Приложение написано на языке Java и способно автоматически загружать Java-библиотеки. Его основная специализация — веб-проекты с динамическим содержимым. Но у Apache Tomcat хуже возможности для настройки, что сужает его сферу применения. Например, для запуска WordPress эффективнее использовать обычный HTTP-сервер Apache.

Заключение

Сервер Apache – универсальный инструмент для быстрого и безопасного запуска интернет-проектов разного масштаба. Веб-сервер совместим с большинством существующих операционных систем, программных  продуктов и языков разработки.
Система конфигурационных файлов дает «Апач» гибкие возможности для настройки, а динамически подгружаемые модули расширяют функционал до максимума. Особенно эффективно использовать веб-сервер Apache в связке с ближайшим аналогом – Nginx.

Для работы с «Апач» пользователю нужен определенный уровень IT грамотности. Желательно знать основы программирования и веб-администрирования. Но процесс сильно упрощает активное сообщество поддержки и отлично развитая база официальной документации.

Раскройте все возможности и преимущества веб-сервера Apache с надёжным хостингом от Eternalhost!

Оцените материал:

[Всего голосов: 3    Средний: 5/5]

apache — .

htaccess ErrorDocument 404 не отображается

спросил

Изменено 1 год назад

Просмотрено 314 тысяч раз

Часть коллектива AWS

У меня есть сервер службы AWS EC2, работающий на Linux Ubuntu, и я установил apache, php и mysql.

Я добавил файл .htaccess в корневой каталог моего документа /var/www/html .

Я ввел в него этот код: ErrorDocument 404 /var/www/html/404.php и до сих пор не отображается.

Я продолжал вводить эту команду несколько раз: sudo service httpd restart для перезагрузки сервера, но никаких изменений не отображается…

Как это исправить… Я сделал что-то не так?

  • апач
  • . htaccess
  • амазон-ec2
  • амазон-веб-сервисы
  • apache-config

1

Во-первых, обратите внимание, что перезапуск httpd не требуется для файлов .htaccess. Файлы .htaccess предназначены специально для людей, у которых нет root-прав, то есть у которых нет доступа к файлу конфигурации сервера httpd и которые не могут перезапустить сервер. Поскольку вы можете перезапустить сервер, вам не нужны файлы .htaccess, и вы можете напрямую использовать конфигурацию основного сервера.

Во-вторых, если файлы .htaccess игнорируются, необходимо проверить правильность настройки AllowOverride. Подробнее см. http://httpd.apache.org/docs/2.4/mod/core.html#allowoverride. Вам также необходимо убедиться, что он установлен в правильной области действия, т. е. в правильном блоке вашей конфигурации. Убедитесь, что вам НЕ редактирование в блоке, например.

В-третьих, если вы хотите убедиться, что файл . htaccess действительно читается, забросьте в него мусор. Недопустимая строка, такая как «INVALID LINE HERE», в вашем файле .htaccess приведет к ошибке сервера 500, когда вы укажете браузеру каталог, содержащий этот файл. Если это не так, то у вас неправильно настроен AllowOverride.

6

  1. Включить модуль Apache mod_rewrite

    a2enmod перезаписать

  2. добавьте следующий код в /etc/apache2/sites-available/default

    Разрешить переопределение Все

  3. Перезапустите апач

    /etc/init.d/apache2 перезапустить

8

Если вы попробовали все вышеперечисленное, все из которых являются правильными и хорошими ответами, и ваш файл htaccess не работает или не читается, измените директиву в Файл apache2.conf . В Ubuntu путь /etc/apache2/apache2. conf

Измените директиву , указывающую на ваши общедоступные веб-страницы, где находится файл htaccess. Изменение с AllowOverride None на AllowOverride All

 
Индексы опционов FollowSymLinks
Разрешить переопределить все
Требовать все предоставленные

 

У меня была та же проблема, и я нашел ответ и объяснение на Ubuntu Ask! форум https://askubuntu.com/questions/421233/enbling-htaccess-file-to-rewrite-path-not-working

3

Для Ubuntu,
Сначала запустите эту команду: —

 sudo a2enmod rewrite
 

Затем отредактируйте файл /etc/apache2/sites-available/000-default.conf с помощью nano или vim с помощью этой команды: —

 sudo nano /etc/apache2/sites-available/000-default.conf
 

Затем в файле 000-default.conf добавьте это после строки DocumentRoot /var/www/html . Если ваш корневой html-каталог отличается от другого, напишите так: —

 <Каталог "/var/www/html">
  Разрешить переопределить все

 

Сделав все, перезапустите apache с помощью команды sudo service apache2 restart

Скорее всего, для AllowOverride установлено значение None. в разделе Directory файла apache2.conf, расположенном в папке /etc/apache2

Попробуйте установить для него значение AllowOverride All

Просто выполните 3 шага

  1. Включите mode_rewrite с помощью следующей команды

    sudo a2enmod переписать

Будет запрошен пароль. Поэтому введите свой пароль

  1. Обновите файл 000-default.conf или default.conf , расположенный в каталоге /etc/apache2/sites-available/ . вы не можете редактировать его напрямую. поэтому используйте следующую команду, чтобы открыть

    sudo gedit /etc/apache2/sites-available/000-default. conf

или sudo gedit /etc/apache2/sites-available/default.conf

вы получите

DocumentRoot /var/www/html

ИЛИ

DocumentRoot /var/www

строка. Добавьте следующий код после него.

 <Каталог /var/www/html/>
Индексы опционов FollowSymLinks
Разрешить переопределить все
Требовать все предоставленные

 

Сделать пользователем путь к тегу каталога таким же, как показано в вашем файле.

  1. Перезапустите сервер Apache с помощью следующей команды

    перезагрузка службы sudo apache2

1

По моему опыту, директива каталога /var/www/ запрещает директивы виртуального хоста для подпапок. Итак, если вы испробовали все предложения и все еще не работаете, и вы используете виртуальные хосты, попробуйте это;

1 — Убедитесь, что у вас есть AllowOverride All директива в /etc/apache2/sites-available/example. com.conf

2 — Проверьте /var/www/ директивы каталога в /etc/apache2/apache2.conf (возможно, в строке 164), что выглядит как ;

 <Каталог /var/www/>
        Индексы опционов FollowSymLinks
        Аллововеррайд
        Требовать все предоставленные

 

Если есть директива AllowOverride None , измените ее на AllowOverride Все или просто экранирующая строка

По умолчанию Apache запрещает использование файла .htaccess для применения правил перезаписи, поэтому

Шаг 1 — Включение mod_rewrite (если не включено) Во-первых, нам нужно активировать mod_rewrite. Он доступен, но не включен при чистой установке Apache 2.

 $ sudo a2enmod переписать
 

Это активирует модуль или предупредит вас о том, что модуль уже включен. Чтобы эти изменения вступили в силу, перезапустите Apache.

 $ sudo systemctl перезапустить apache2
 

mod_rewrite теперь полностью включен. На следующем шаге мы создадим файл .htaccess, который будем использовать для определения правил перезаписи для перенаправлений.

Шаг 2 — Настройка .htaccess Откройте файл конфигурации Apache по умолчанию с помощью nano или вашего любимого текстового редактора.

 $ sudo nano /etc/apache2/sites-available/000-default.conf
 

Внутри этого файла вы найдете блок, начинающийся с первой строки. Внутри этого блока добавьте следующий новый блок, чтобы ваш файл конфигурации выглядел следующим образом. Убедитесь, что все блоки имеют правильный отступ.

/etc/apache2/сайты-доступные/000-default.conf

 <Виртуальный хост *:80>
    <Каталог /var/www/html>
        Опционы Индексы FollowSymLinks MultiViews
        Разрешить переопределить все
        Требовать все предоставленные
    
    . . .

 

Сохраните и закройте файл. Чтобы эти изменения вступили в силу, перезапустите Apache.

 $ sudo systemctl перезапустить apache2
 

Готово. Ваш .htacess должен работать. Эта ссылка действительно может кому-то помочь https://www.digitalocean.com/community/tutorials/how-to-rewrite-urls-with-mod_rewrite-for-apache-on-ubuntu-16-04

1

Я разрешил это использование. Используя этот сайт, щелкните здесь , следуйте инструкциям, те же шаги следуют до версии Ubuntu 18.04

. Перейдите в /etc/apache2/apache2.conf

. Вы должны отредактировать этот файл (у вас должны быть права root). Измените текст каталога, как показано ниже:

<Каталог /var/www/>
Параметры Индексы FollowSymLinks
AllowOverride All
Требовать все предоставлено

Теперь вам нужно перезапустить apache.

перезапуск службы apache2

В WampServer Открыть значок WampServer в трее —-> Apache —> Модули Apache —>rewrite_module

Для полноты, если «AllowOverride All» не решает вашу проблему, вы можно отладить эту проблему, используя:

  1. Запустите apachectl -S и посмотрите, есть ли у вас более одного namevhost. Возможно, httpd ищет .htaccess другого DocumentRoot.

  2. Используйте strace -f apachectl -X и посмотрите, откуда загружается (или не загружается) .htaccess.

у меня много сайтов на виртуальной машине, и я решил это только изменив конфиг сайта в котором мне нужно .htaccess

что я сделал:

  1. sudo a2enmod rewrite

далее я изменил конфигурацию только для конкретного сайта, а не для каждого сайта «example.com»

  1. sudo nano /etc/apache2/sites-enable/example.com.conf

внутри него я добавил

 
    Разрешить переопределить все

 
  1. перезапуск службы apache2

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

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

apache — Почему файл Apache2 .

htaccess не читается? («Опции -Индексы» в файле .htaccess не работают)

спросил

Изменено 6 месяцев назад

Просмотрено 78 тысяч раз

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

Опции — Индексы

Однако для каталога по-прежнему отображается индекс.

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

ОС: Ubuntu 12.04 (Precise Pangolin)
Версия Apache2: Версия сервера: Apache/2.2.22 (Ubuntu) Сервер построен: 13 февраля 2012 г. 01:51:56

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

РЕДАКТИРОВАТЬ:

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

  • апач
  • .htaccess

6

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

AllowOverride All

Если нет, то .htaccess не действует.

6

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

/etc/apache2/httpd.conf :

 
        Корень документа /var/www
        <Каталог/>
        

 

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

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

3

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

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

 
имя_сервера
DocumentRoot "C:/Веб-сайты/htdocs/вашсайт"
<Каталог "C:/Веб-сайты/htdocs/вашсайт">
    Параметры
    Разрешить переопределить все

 

Мне нужно AllowOverride All , чтобы распознать файл .htaccess.

Редактировать

Мне также нужно было добавить путь к корню сайта в самом теге каталога. то есть . Это было по умолчанию в образцах, которые я использовал.

1

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

  1. Перейти к /etc/apache2/sites-enabled/
  2. Выполните ls , чтобы найти файл для веб-сайта, который вы ищете
  3. Отредактируйте соответствующий файл с помощью nano THE_CONF_FILE или любого другого редактора, который вам нужен
  4. Изменить все AllowOverride None значения, которые вы видите в разных ... s на AllowOverride All
  5. Сохраните файл и закройте его

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

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

Теперь все будет работать как по маслу!

3

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

 AllowOverride Нет
 

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

 AllowOverride All
 

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

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

 AllowOverride Нет
 

До

 AllowOverride All
 

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

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

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

 RewriteEngine включен
Переписать Базу /
 

В противном случае может по-прежнему не обнаруживаться перезапись или перенаправление.

Еще одна причина, по которой файл htaccess не читается, заключается в том, что существующий htaccess применяет перенаправление HTTPS 301, которое браузер затем кэширует, что может быть проблемой, если виртуальные хосты настроены неправильно. Полное объяснение ниже.

Если вы настраиваете виртуальный хост, например, в Apache и XAMPP, при первом запуске URL-адреса вашего виртуального хоста, если у вас есть существующий файл htaccess с перенаправлением HTTPS 301, ваш браузер будет перенаправлен на HTTPS-версия вашего виртуального хоста. Но есть потенциальная проблема. Если вы явно не настроили виртуальный хост *:433 для рассматриваемого домена, в файле конфигурации Apache vhosts Apache по умолчанию будет использовать первый указанный виртуальный хост.

В зависимости от содержимого этого виртуального хоста по умолчанию может быть невозможно понять, что происходит, и пользователь будет безумно пытаться определить, почему изменения в файле htaccess больше не обрабатываются.

Как только вы определите, что происходит, обходной путь — отключить любые перенаправления HTTPS, перезагрузить компьютер и повторить попытку без HTTPS. Реальное решение — завершить полную настройку виртуального хоста 443 с сертификатом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *