Как разрешить файл .htaccess?
Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log.
Отслеживать
2,332 6 6 золотых знаков 21 21 серебряный знак 34 34 бронзовых знака
задан 4 мар 2012 в 23:02
2,711 15 15 золотых знаков 54 54 серебряных знака 87 87 бронзовых знаков
Мне кажется, надо привести содержание .htaccess, иначе ничего не понятно.
4 мар 2012 в 23:57
У меня другой вопрос нарисовался. А зачем «добавляю файл .htaccess», если не понимаю зачем он и что он делает?
5 мар 2012 в 0:16
код в студию!
5 мар 2012 в 6:00
код чего, файл .htaccess пуст, но из-за него не хочет сайт запускаться, вот такой вот «феномен».
5 мар 2012 в 10:22
«More information about this error may be available in the server error log.»
9 июн 2016 в 4:30
5 ответов 5
Сортировка: Сброс на вариант по умолчанию
В конфигах домена от апач должны быть разрешены реврайты:
AllowOverride ALL
Приведите сюда этот файл конфига. У меня такая же проблема была на VDS, решилась именно этой строкой.
Отслеживать
ответ дан 5 мар 2012 в 5:58
Ёхарный Бабай Ёхарный Бабай
3,403 4 4 золотых знака 34 34 серебряных знака 50 50 бронзовых знаков
прописал везде в конфиге AllowOverride ALL, толку мало.
5 мар 2012 в 10:24
А! Все, получилось!
5 мар 2012 в 10:27
скорее всего mod_rewrite в конфигах закомментарен
Отслеживать
ответ дан 5 мар 2012 в 0:48
kemerov4anin kemerov4anin
1,820 1 1 золотой знак 11 11 серебряных знаков 13 13 бронзовых знаков
Не уверен, но кажется любая ошибка в .htaccess приведет к ошибке 500.
5 мар 2012 в 1:33
файл .htaccess вообще пустой. Да, LoadModule rewrite_module modules/mod_rewrite.so было закомментировано, но после разкомментирования ничего не изменилось.
5 мар 2012 в 10:20
И вы тоже помогли!
5 мар 2012 в 10:28
Если файл .htaccess пустой — то удалить его нафиг, если он реально для чего-то нужен то в него эти нужные строчки прописать, иначе ошибка останется.
Ну или пропиши в него
RewriteEngine on RewriteBase /
А вообще можно скинуть файл логов апача, и там намного понятнее будет из-за чего ошибка вылетает. Без логов ничего не понятно. Вполне возможно что .htaccess нифига не пустой, что в нём присутствует какая-то строка, или сохранен в UTF-8 bom. что вероятнее всего выдаст ошибку. Вариантов могу написать вагон и тележку, а смысл? Код файла сюда, лог апача так же сюда 🙂
Но все таки возможно в конфиге апача выключено.
Отслеживать
ответ дан 5 мар 2012 в 10:27
12k 1 1 золотой знак 21 21 серебряный знак 41 41 бронзовый знак
Я же написал что все ок!
5 мар 2012 в 13:30
Нужно убрать символ # в начале строки 156 в apache\conf\httpd.conf . И написать AllowOverride All на строчках 229, 265, 378 (номера строк могут отличаться).
Отслеживать
51.2k 86 86 золотых знаков 266 266 серебряных знаков 505 505 бронзовых знаков
ответ дан 9 июн 2016 в 2:49
11 1 1 бронзовый знак
Вы бы добавили как идентифицировать строки которые необходимо раскоментировать
9 июн 2016 в 3:30
Когда в программном продукте существует возможность просмотра лога ошибок, то при возникновении ошибки следует:
- Перевести текст ошибки в логе и выполнить, что просят, если это не вызывает затруднений;
- И/или сразу вбить в поисковик кусок текста ошибки в логе и посмотреть, как другие разрешили проблему;
- Если варианты 1 и 2 не помогли, задавая вопрос, привести в нём текст ошибки в логе.
Конкрентно для Apache — точнее, у меня стоит WampServer, в состав которого входит Apache — мне всегда, несколько раз помогал способ 1. Описание ошибок в журнале достаточно подробное и понятное.
Без содержимого лога нельзя точно сказать, в чём состоит проблема, 500 Internal Server Error может выдаваться по нескольким причинам. Судя по результатам, которые получил я, когда гуглил в поисках разрешения аналогичной проблемы, большей части пользователей помогает замена в файле httpd.conf строки #LoadModule rewrite_module modules/mod_rewrite.so на LoadModule rewrite_module modules/mod_rewrite.so .
Лично же мне помогло удаление всех комментариев в .htaccess , решил проблему, разобравшись с логом.
как включить .htaccess в apache2
Редактируем его любым текстовым редактором, вот как оно должно выглядеть:
ServerAdmin admin@site.com DocumentRoot /var/www Options Indexes FollowSymLinks MultiViews AllowOverride All # - это значение было None Order allow,deny allow from all
Заставьте апач перечитать конфигурацию:
service apache2 reload
Всё. Теперь ваш кастомный .htaccess работает в любой сабдиректории /var/www без проблем
Ключевым параметром в данном случае является AllowOverride All . Также можете найти и поправить секцию Directory в /etc/apache2/apache2.conf .
Как включить .htaccess на HTTP-сервере Apache
Вопрос: я хотел использовать файл .htaccess , чтобы настроить что-то для своего веб-сайта, работающего на веб-сервере Apache. Но файл .htaccess , который я поместил в корневой каталог документов веб-сайта, не работает. Как включить .htaccess на веб-сервере Apache?
Файл .htaccess — это файл конфигурации на уровне каталога для HTTP-сервера Apache, который позволяет переопределять общесистемные настройки веб-сервера без изменения глобального файла конфигурации (например, httpd.conf). или apache2.conf ). В файле .htaccess можно настроить такие вещи, как контроль доступа к каталогу, защита паролем, перенаправление URL-адресов или предотвращение горячих ссылок.
Файл .htaccess можно поместить в корневую папку документов веб-сайта и/или в любую из ее подпапок. Особенно в среде общего веб-хостинга, где несколько веб-сайтов предоставляются на одном веб-сервере, файл .htaccess — это удобный способ для каждого веб-сайта переопределить глобальные настройки веб-сервера без привилегий root.
Если вы хотите использовать файл .htaccess на HTTP-сервере Apache, вам необходимо явно включить его в основном файле конфигурации веб-сервера. В противном случае ваш файл .htaccess будет проигнорирован.
Вот как включить .htaccess для HTTP-сервера Apache.
Включите .htaccess в CentOS или Fedora.
Откройте глобальный файл конфигурации Apache с помощью текстового редактора.
$ sudo vi /etc/httpd/conf/httpd.conf
Найдите директивы . Каждый раздел, заключенный в и , определяет настройки веб-сервера для определенного корневого каталога документа и всех его подкаталогов. В этом разделе замените AllowOverride None на AllowOverride All . Это активирует .htaccess для соответствующего дерева каталогов.
После изменения конфигурации перезапустите Apache.
В CentOS 7 или более поздней версии:
$ sudo systemctl restart httpd
В CentOS 6 или более ранней версии:
$ sudo service restart httpd
Включите .htaccess в Debian или Ubuntu
Откройте глобальную конфигурацию Apache ( /etc/apache2/apache2.conf ) или конфигурацию для конкретного сайта ( /etc/apache2/sites-available/mywebsite.conf ) с помощью Текстовый редактор.
Найдите директивы . В разделе, окруженном и , замените «AllowOverride None» на » Разрешить переопределить все«. Это активирует .htaccess для всего дерева каталогов в directory-path . Например, следующий код активирует .htaccess для /var/www и всех его подкаталогов.
Options Indexes FollowSymLinks AllowOverride All Require all granted
После изменения конфигурации перезапустите Apache:
$ sudo service apache2 restart
Примечание:
После включения .htaccess изменение содержимого .htaccess не требует перезапуска Apache. Любое изменение, внесенное в .htaccess , вступит в силу немедленно. В качестве побочного эффекта каждый HTTP-запрос включает доступ к файловой системе для каждого файла .htaccess в дереве каталогов с поддержкой .htaccess . Таким образом, включение .htaccess приводит к снижению производительности веб-сервера.
Все права защищены. © Linux-Console.net • 2019-2023
Включить .htaccess на Linux-сервере Apache 2
При использовании веб-сервера Apache файлы .htaccess (также называемые «файлами распределенной конфигурации») используются для указания конфигурации для каждого каталога или, в более общем смысле, для изменения поведения веб-сервера Apache. без необходимости прямого доступа к файлам виртуальных хостов (обычно это невозможно, например, на общих хостах). Чтобы эти файлы .htaccess имели какой-либо эффект, мы должны сначала включить соответствующий параметр в конфигурации Apache.
В этом руководстве мы увидим, как включить .htacces в Apache 2 для системы Linux. Вы также узнаете, как отключить его на случай, если вы решите отключить эту настройку позже.
В этом уроке вы узнаете:
- Для чего используется файл .htaccess ?
- Как включить .htaccess в Apache
Включите .htaccess на Linux-сервере Apache 2, пошаговые инструкции
Файл .htaccess помещается в каталог и позволяет администраторам указывать инструкции, применимые к этому каталогу. Файл можно использовать для запрета или разрешения доступа к каталогу, ограничения доступа по IP или паролю, настройки перенаправления, перезаписи URL-адресов и многого другого. Конечно, эту настройку также можно выполнить в самом файле конфигурации виртуальных хостов, но иногда использование файла .htaccess более практично или является единственным доступным решением.
Следуйте пошаговым инструкциям ниже, чтобы включить или отключить файл .htaccess для Apache.
-
Начните с открытия файла виртуальных хостов Apache. Мы просто отредактируем файл по умолчанию, который называется 000-default.conf , но ваш может иметь другое имя. Для этого шага используйте nano или предпочитаемый вами текстовый редактор.
$ sudo nano /etc/apache2/sites-enabled/000-default.conf
AllowOverride All
$ sudo apachectl configtest Syntax OK $ sudo systemctl restart apache2
$ sudo nano /var/www/html/.htaccess
Redirect permanent / https://example.com
AllowOverride none
Устранение неполадок с файлом .htaccess
Если ваши правила не работают должным образом, вот что вы можете попробовать.
-
Убедитесь, что файл .htaccess имеет соответствующие разрешения.
$ sudo chown www-data.www-data /var/www/html/.htaccess
$ sudo a2enmod alias
Заключительные мысли
В этом руководстве мы увидели, как включать и отключать файл .htaccess для сервера Apache в системе Linux. Этот файл конфигурации позволяет применять простые и детальные правила для каждого каталога, но он работает медленнее, чем применение каталога правил к файлу виртуальных хостов Apache. Тем не менее, на виртуальном хостинге или в других ситуациях это оказывается наиболее жизнеспособным методом применения простых конфигураций.
Все права защищены. © Linux-Console.net • 2019-2023