Не работает htaccess allowoverride

.htaccess не работает apache

у меня есть сервер от сервиса AWS EC2, работающего на Linux ubuntu, и я установил apache, php и mysql.

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

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

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

как я могу исправить это. Я сделала что-то не так?

10 ответов

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

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

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

Читайте также:  Можно ли починить разбитый экран смартфона

включить модуль Apache mod_rewrite

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

Источник

Apache — не обрабатывается файл .htaccess

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

Хотя в файле указана директива:

сервер все-равно отображает содержимое каталога виртуалхоста.

О создании и настройке виртуалхостов можно почитать тут>>>.

Решение заключается в переопределении параметра:

AllowOverride None
Order deny,allow
Deny from all

В файле конфигурации Apache/usr/local/etc/apache22/httpd.conf установлено глобальное значение директивы — запретить в корневом каталоге сервера. Сама директива AllowOverride определяет директивы, разрешенные для использования в файле .htaccess .

Что бы не менять значение для всего каталога веб-сервера и его подкаталогов, переопределим значение для отдельного виртуалхоста.

В файл конфигурации /usr/local/etc/apache22/extra/httpd-vhosts.conf , где описан настраиваемый виртуалхост, в блок можно добавить значение локальных директив для каталога.

К примеру, описание виртуалхоста:

ServerAdmin root@setevoy.org.ua
DocumentRoot /usr/local/www/users/setevoy/setevoy.org.ua
ServerName setevoy.org.ua
ServerAlias setevoy.kiev.ua
ErrorLog /var/log/apachelog/setevoy.org.ua-error.log
CustomLog /var/log/apachelog/setevoy.org.ua-error.log common

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

Источник

.htaccess не работает apache

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

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

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

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

Как я могу это исправить . Я сделал что-то не так?

Во-первых, обратите внимание, что перезапуск 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 Server, когда вы укажете браузеру на каталог, содержащий этот файл. Если это не так, то у вас не настроен AllowOverride правильно.

Источник

Не работает .htaccess

Не работает переадресация всех запросов на index.php и выдает ошибку, как я понял, то проблема в том, что апач не учитывает настройки моего файла .htaccess.

Вот настройки апача из файла настройек httpd.conf

Вот содержимое htaccess

Подскажите, в чем проблема?

4 ответа 4

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

Далее нужно проверить заголовки сервера, например с помощью https://bertal.ru/ или инструментов разработчика Google Chrome — вкладка Network. Вполне возможно (на хостингах), что в заголовках ответа в качестве сервера вы увидите не Apache, а nginx. Тогда нужно смотреть как настроен nginx. Как правило он может искать запрашиваемые ссылки физически в файловой системе.

В вашей настройке не указано как будет называться AccessFile, нужно добавить «AccessFileName .htaccess» в конфиге apache.

У меня тоже была такая проблема. Но я решил. Нашёл два способа:

    Это решается со стороны хоcтинга. Если они не хотят или не могут, то нужно менять хостинг.

Перед названием контроллера добавить index.php . Например:

Ещё, на всякий случай вот тут содержимое моего файла .htaccess:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .htaccess apache или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.10.15.40479

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

Не работает .htaccess в Ubuntu, почему?

ServerName ft.dev
DocumentRoot /var/www/html
AllowOverride All

это конфиг файл. созданный. когда там без htaccess, все раьотает

RewriteRule ^(.*)(/)$ $1 [L,R=301]

RewriteRule ^([a-zA-Z0-9_-]+)$ default.php?url=$1 [L,QSA]

RewriteRule ^([a-zA-Z0-9_-]+)/$ default.php?url=$1 [L,QSA]

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ default.php?url=$1&type=$2

ServerName ft.dev
DocumentRoot /var/www/html
AllowOverride All

это виртуального хоста файл.

# This is the main Apache server configuration file. It contains the
# configuration directives that give the server its instructions.
# See httpd.apache.org/docs/2.4 for detailed information about
# the directives and /usr/share/doc/apache2/README.Debian about Debian specific
# hints.
#
#
# Summary of how the Apache 2 configuration works in Debian:
# The Apache 2 web server configuration in Debian is quite different to
# upstream’s suggested way to configure the web server. This is because Debian’s
# default Apache2 installation attempts to make adding and removing modules,
# virtual hosts, and extra configuration directives as flexible as possible, in
# order to make automating the changes and administering the server as easy as
# possible.

# It is split into several files forming the configuration hierarchy outlined
# below, all located in the /etc/apache2/ directory:
#
# /etc/apache2/
# |— apache2.conf
# | `— ports.conf
# |— mods-enabled
# | |— *.load
# | `— *.conf
# |— conf-enabled
# | `— *.conf
# `— sites-enabled
# `— *.conf
#
#
# * apache2.conf is the main configuration file (this file). It puts the pieces
# together by including all remaining configuration files when starting up the
# web server.
#
# * ports.conf is always included from the main configuration file. It is
# supposed to determine listening ports for incoming connections which can be
# customized anytime.
#
# * Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/
# directories contain particular configuration snippets which manage modules,
# global configuration fragments, or virtual host configurations,
# respectively.
#
# They are activated by symlinking available configuration files from their
# respective *-available/ counterparts. These should be managed by using our
# helpers a2enmod/a2dismod, a2ensite/a2dissite and a2enconf/a2disconf. See
# their respective man pages for detailed information.
#
# * The binary is called apache2. Due to the use of environment variables, in
# the default configuration, apache2 needs to be started/stopped with
# /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not
# work with the default configuration.

#
# ServerRoot: The top of the directory tree under which the server’s
# configuration, error, and log files are kept.
#
# NOTE! If you intend to place this on an NFS (or otherwise network)
# mounted filesystem then please read the Mutex documentation (available
# at );
# you will save yourself a lot of trouble.
#
# Do NOT add a slash at the end of the directory path.
#
#ServerRoot «/etc/apache2»

#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
Mutex file:$ default

#
# PidFile: The file in which the server should record its process
# identification number when it starts.
# This needs to be set in /etc/apache2/envvars
#
PidFile $

#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to «Off» to deactivate.
#
KeepAlive On

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 5

# These need to be set in /etc/apache2/envvars
User $
Group $

#
# HostnameLookups: Log the names of clients or just their IP addresses
# e.g., www.apache.org (on) or 204.62.129.132 (off).
# The default is off because it’d be overall better for the net if people
# had to knowingly turn this feature on, since enabling it means that
# each client request will result in AT LEAST one lookup request to the
# nameserver.
#
HostnameLookups Off

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a
# container, error messages relating to that virtual host will be
# logged here. If you *do* define an error logfile for a
# container, that host’s errors will be logged there and not here.
#
ErrorLog $/error.log

#
# LogLevel: Control the severity of messages logged to the error_log.
# Available values: trace8, . trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the log level for particular modules, e.g.
# «LogLevel info ssl:warn»
#
LogLevel warn

# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

# Include list of ports to listen on
Include ports.conf

# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual host.

Options FollowSymLinks
AllowOverride None
Require all denied

AllowOverride None
Require all granted

Options Indexes FollowSymLinks
AllowOverride None
Require all granted

#
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#

Options Includes Indexes FollowSymLinks
AllowOverride All
Allow from all

# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives. See also the AllowOverride
# directive.
#
AccessFileName .htaccess

#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#

Require all denied

#
# The following directives define some format nicknames for use with
# a CustomLog directive.
#
# These deviate from the Common Log Format definitions in that they use %O
# (the actual bytes sent including headers) instead of %b (the size of the
# requested file), because the latter makes it impossible to detect partial
# requests.
#
# Note that the use of %i instead of %h is not recommended.
# Use mod_remoteip instead.
#
LogFormat «%v:%p %h %l %u %t \»%r\» %>s %O \»%i\» \»%i\»» vhost_combined
LogFormat «%h %l %u %t \»%r\» %>s %O \»%i\» \»%i\»» combined
LogFormat «%h %l %u %t \»%r\» %>s %O» common
LogFormat «%i -> %U» referer
LogFormat «%i» agent

# Include of directories ignores editors’ and dpkg’s backup files,
# see README.Debian for details.

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

это apache2.conf (скажите где прописать all, убрал все)

Источник

Оцените статью