apache — Не работает .htaccess
Задать вопрос
Вопрос задан
Изменён 3 года назад
Просмотрен 4k раз
Не работает переадресация всех запросов на index.php и выдает ошибку, как я понял, то проблема в том, что апач не учитывает настройки моего файла .htaccess.
Вот настройки апача из файла настройек httpd.conf
ServerRoot "c:/Server/bin/Apache24" Listen 80 LoadModule access_compat_module modules/mod_access_compat.so LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule allowmethods_module modules/mod_allowmethods.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authn_core_module modules/mod_authn_core.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authz_core_module modules/mod_authz_core.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule cgi_module modules/mod_cgi.so LoadModule dir_module modules/mod_dir.so LoadModule env_module modules/mod_env.so LoadModule include_module modules/mod_include.so LoadModule isapi_module modules/mod_isapi.so LoadModule log_config_module modules/mod_log_config.so LoadModule mime_module modules/mod_mime.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule setenvif_module modules/mod_setenvif.so <IfModule unixd_module> User daemon Group daemon </IfModule> ServerAdmin [email protected] ServerName localhost DocumentRoot "c:/Server/data/htdocs/" <Directory /> Options Includes Indexes FollowSymLinks AllowOverride All Allow from all </Directory> <Directory "c:/Server/data/htdocs/"> Options Indexes FollowSymLinks AllowOverride All Allow from all </Directory> <IfModule dir_module> DirectoryIndex index. html index.htm index.shtml index.php </IfModule> <Files ".ht*"> Require all denied </Files> ErrorLog "logs/error.log" LogLevel warn <IfModule log_config_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common <IfModule logio_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule> CustomLog "logs/access.log" common </IfModule> <IfModule alias_module> ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/" </IfModule> <Directory "c:/Apache24/cgi-bin"> AllowOverride None Options None Require all granted </Directory> <IfModule mime_module> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps TypesConfig conf/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz </IfModule> <IfModule proxy_html_module> Include conf/extra/proxy-html.
(.*)$ index.php/$1 [L] RewriteBase /siteroot/
Зарегистрируйтесь или войдите
Регистрация через Google
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
.
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 — ie, не имеют доступа к файлу конфигурации сервера httpd и не могут перезапустить сервер. Поскольку вы можете перезапустить сервер, вам это не нужно .htaccess файлы и может использовать конфигурацию главного сервера напрямую.
во-вторых, если .файлы htaccess игнорируются, вам нужно проверить, правильно ли установлен AllowOverride.
Видеть http://httpd.apache.org/docs/2.4/mod/core.html#allowoverride для сведения. Вы также должны убедиться, что он установлен в правильной области — т. е. в правом блоке в вашей конфигурации. Будьте уверены, что вы не редактирование в блоке, например.
в-третьих, если вы хотите убедиться, что .htaccess файл на самом деле читается, положить мусор в нем. Недопустимая строка, например «недопустимая строка здесь», в вашем .файл htaccess, приведет к ошибке сервера 500, когда вы указываете браузеру на каталог, содержащий этот файл. Если это не так, то у вас нет AllowOverride настроен правильно.
232
поделиться
автор: Rich Bowen
включить модуль Apache mod_rewrite
a2enmod rewriteдобавить следующий код
/etc/apache2/sites-available/defaultAllowOverride Allперезапустить apache
/etc/init.
d/apache2 restart
91
поделиться
автор: Sijo Thomas Maprayil
если вы пробовали все вышеперечисленное, которые все действительны и хорошие ответы, и ваш файл htaccess не работает или не читается, измените директиву в . В Ubuntu путь /etc/apache2/apache2.conf
изменить <Directory> директива, указывающая на общедоступные веб-страницы, где находится файл htaccess. Изменение от AllowOverride None до AllowOverride All
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
у меня была та же проблема, и я нашел ответ и объяснение на Ubuntu Ask! форум https://askubuntu.com/questions/421233/enabling-htaccess-file-to-rewrite-path-not-working
35
поделиться
автор: user1946891
на Ubuntu,
Сначала выполните следующую команду: —
sudo a2enmod rewrite
затем отредактируйте файл /etc/apache2/sites-available/000-default. использование nano или vim с помощью этой команды: —
conf
sudo nano /etc/apache2/sites-available/000-default.conf
затем в 000-default.conf файл, добавьте это после строки DocumentRoot /var/www/html. Если ваш корневой html-каталог-это что-то другое, напишите: —
<Directory "/var/www/html"> AllowOverride All </Directory>
после выполнения всех действий перезапустите apache с помощью команды sudo service apache2 restart
15
поделиться
автор: khandelwaldeval
скорее всего, AllowOverride имеет значение None. в разделе каталога apache2.conf находится в папке/etc / apache2
попробуйте настроить его на AllowOverride All
5
поделиться
автор: KawaiKx
просто выполните 3 шага
включить mode_rewrite, используя следующую команду
sudo a2enmod переписать
будет задан пароль.
Так что введите свой пароль
обновить 000-по умолчанию.conf или по умолчанию.conf файл находится по адресу / etc / apache2 / сайты-доступно/. вы не можете редактировать его напрямую. поэтому используйте следующую команду для открыть
sudo gedit/etc/apache2/sites-available / 000-по умолчанию.conf
или sudo gedit / etc/apache2/sites-доступно / по умолчанию.conf
вы получаете
DocumentRoot так в /var/www в/в HTML
или
DocumentRoot так в /var/ВСП
линии. Добавьте следующий код после него.
<Directory /var/www/html/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
Make user путь тега каталога такой же, как показано в вашем файл.
перезагрузите сервер apache, используя следующую команду
перезапуск службы sudo apache2
4
поделиться
автор: Rameshwer Dhanora
по моему опыту, директива/var/ www / directory предотвращает директивы вложенной папки virtualhost.
Поэтому, если вы пробовали все предложения и все еще не работаете, и вы используете virtualhosts, попробуйте это;
1-Убедитесь, что у вас есть AllowOverride All директива in
2 — Проверьте /var/www/ директив каталога в /etc/apache2/apache2.conf (возможно, в строке 164), которая выглядит как;
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
если есть AllowOverride None директива изменить его на AllowOverride All или просто убежать линия
2
поделиться
автор: Erdinç Çorbacı
на WampServer открыть значок в трее WampServer — — — — > Apache — — — > модули Apache — — — >rewrite_module
1
поделиться
автор: Burusothman
используйте RewriteBase / {your folder} / на вашем .
реврайт
0
поделиться
автор: miftah al rasyid
по умолчанию Apache запрещает использование an .файл htaccess для применения правил перезаписи, поэтому
Шаг 1-Включение mod_rewrite (если не включено) Во-первых, нам нужно активировать mod_rewrite. Он доступен, но не включен с чистой установкой Apache 2.
$ sudo a2enmod rewrite
это активирует модуль или предупредит вас, что модуль уже включен. Чтобы эти изменения вступили в силу, перезапустите Apache.
$ sudo systemctl restart apache2
и mod_rewrite теперь полностью включен. В следующий шаг мы установим .htaccess файл, который мы будем использовать для определения правил для перенаправления.
Шаг 2 — Настройка .реврайт Откройте файл конфигурации Apache по умолчанию с помощью nano или любимого текстового редактора.
$ sudo nano /etc/apache2/sites-available/000-default.conf
внутри этого файла вы найдете блок, начинающийся с первой строки.
Внутри этого блока добавьте следующий новый блок, чтобы ваш файл конфигурации выглядел следующим образом. Убедитесь, что все блоки правильно изрезанный.
/ etc/apache2/sites-available / 000-по умолчанию.conf
<VirtualHost *:80>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
. . .
</VirtualHost>
сохранить и закрыть файл. Чтобы эти изменения вступили в силу, перезапустите Apache.
$ sudo systemctl restart apache2
сделано. Ваш.htacess должны работать. эта ссылка может действительно помочь кому-то https://www.digitalocean.com/community/tutorials/how-to-rewrite-urls-with-mod_rewrite-for-apache-on-ubuntu-16-04
-1
поделиться
автор: Abayomi Israel
Ubuntu htaccess не работает
Вы создали в директории с сайтом файл .
htaccess, но чтобы вы туда не писали, ни одна директива не работает. Почему?
Скорее всего здесь виновата опция AllowOverride в apache.
Куда же ее вставлять?
Заходим в конфигурационный файл Apache — httpd.conf. В FreeBSD он располагается здесь:
В других системах расположение другое. Но в целом не так трудно его найти:)
Находим такой блок … , если нет то создаем его:
AllowOverride All
Order allow,deny
Allow from all
Если есть, то добавляем либо меняем опцию AllowOverride:
/usr/local/www/apache22/data/site.ru — это абсолютный путь до вашей директории, где лежит файл .htaccess
AllowOverride All — здесь сказано что если существует файл .htaccess, то все (All) директивы прописанные в нем выполнять. Кстати если не хотите чтоб сервер читал файл .htaccess то замените «All» на «None».
Allow from all — доступ к папке имеют все.
После того как добавили блок с описанием вашей директории перезапускаем apache.
Теперь все директивы в файле .htaccess должны отрабатывать.
Я хочу использовать .htaccess для перезаписи php-страниц. Или просто: «Я не хочу использовать расширение .php» для доступа к любой веб-странице.
.htaccess файл (Ubuntu 14), который отлично работает:
Тот же файл .htaccess не работает после обновления AWS, который теперь находится в Ubuntu 16.04. Я попробовал все, как изменить разрешение, включив режим перезаписи, изменив свойство каталога конфигурационного файла с «AllowOverride None» на «AllowOverride All».
После какого-то эксперимента я обнаружил, что исправил вышеупомянутый файл .htaccess, как показано ниже, и он работал нормально. Но здесь он всегда позволяет получить доступ только к данной php-странице. Но я не хочу быть конкретным с любой php-страницей. Я тоже пытался писать regexp, но не работал. И он всегда перенаправляется только на данную страницу.
Может кто-нибудь помочь мне в этом. Спасибо заранее.
У меня есть сервер из сервиса 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 игнорируются, вам необходимо проверить, правильно ли установлен AllowOverr > для деталей. Вам также необходимо убедиться, что он установлен в правильной области — то есть в правильном блоке в вашей конфигурации.
Будь уверен НЕ редактирование одного в блоке, например.
В-третьих, если вы хотите убедиться, что файл .htaccess действительно читается, поместите в него мусор.
Недопустимая строка, такая как «INVALID LINE HERE», в вашем файле .htaccess приведет к ошибке 500 Server, когда вы укажете браузеру на каталог, содержащий этот файл. Если это не так, то у вас не настроен AllowOverride правильно.
Другие решения
Включить модуль Apache mod_rewrite
добавьте следующий код в /etc/apache2/sites-available/default
Если вы перепробовали все вышеперечисленное, которые являются действительными и хорошими ответами, и ваш файл htaccess не работает или читается, измените директиву в apache2.conf файл. Под Ubuntu путь /etc/apache2/apache2.conf
Изменить директива, указывающая на ваши общедоступные веб-страницы, где находится файл htaccess. Меняться от AllowOverride None в AllowOverride All
За Ubuntu,
Сначала запустите эту команду:
Затем отредактируйте файл /etc/apache2/sites-available/000-default.
conf используя nano или vim с помощью этой команды: —
Тогда в 000-default.conf файл, добавьте это после строки DocumentRoot /var/www/html , Если ваш корневой каталог html — это что-то другое, то напишите:
Сделав все, перезапустите apache с помощью команды sudo service apache2 restart
Скорее всего, для AllowOverride установлено значение None. в разделе каталога apache2.conf, расположенном в папке / etc / apache2
Попробуйте установить для него AllowOverride All
Просто выполните 3 шага
Включите mode_rewrite, используя следующую команду
sudo a2enmod переписать
Пароль будет запрошен. Так что введите свой пароль
Обновите свой 000-default.conf или же default.conf файл находится в / и т.д. / apache2 / сайты-доступны / каталог. Вы не можете редактировать его напрямую. поэтому используйте следующую команду, чтобы открыть
sudo gedit /etc/apache2/sites-available/000-default.conf
Или же
sudo gedit /etc/apache2/sites-available/default.
conf
линия. Добавьте следующий код после него.
Сделайте так, чтобы путь тега каталога был таким же, как показано в вашем файле.
Перезагрузите сервер apache, используя следующую команду
перезапуск службы sudo apache2
По моему опыту, директива / var / www / directory запрещает директивы virtualhost. Так что, если вы перепробовали все предложения и все еще не работали, и вы используете виртуальные хосты, попробуйте это;
1 — убедитесь, что у вас есть
AllowOverride All директива в
/etc/apache2/sites-available/example.com.conf
2 — Проверьте / var / www / Директивы директивы в /etc/apache2/apache2.conf (возможно, в строке 164), которая выглядит так;
Если есть AllowOverride None директива изменить его на
AllowOverride All или просто сбежать
По умолчанию Apache запрещает использование файла .htaccess для применения правил перезаписи, поэтому
Шаг 1 — Включение mod_rewrite (если не включено)
Во-первых, нам нужно активировать mod_rewrite.
Он доступен, но не включен с чистой установкой Apache 2.
Это активирует модуль или предупредит вас, что модуль уже включен. Чтобы эти изменения вступили в силу, перезапустите Apache.
mod_rewrite теперь полностью включен. На следующем шаге мы настроим файл .htaccess, который будем использовать для определения правил перезаписи для перенаправлений.
Шаг 2 — Настройка .htaccess
Откройте файл конфигурации Apache по умолчанию, используя nano или ваш любимый текстовый редактор.
Внутри этого файла вы найдете блок, начинающийся с первой строки. Внутри этого блока добавьте следующий новый блок, чтобы ваш файл конфигурации выглядел следующим образом. Убедитесь, что все блоки имеют правильные отступы.
Сохраните и закройте файл. Чтобы эти изменения вступили в силу, перезапустите Apache.
Шесть наиболее распространенных проблем с Htaccess и способы их устранения — умный веб-разработчик
Ваш Apache htaccess не работает? Вот основные причины, по которым файл htaccess может не работать, и как заставить ваш htaccess работать.
Htaccess Проблема #1: Нет точки перед именем файла
Имя файла .htaccess должно начинаться с точки, например: Unix, Linux и Mac. Файл htaccess скрыт, поэтому он не отвлекает от обычного веб-контента, такого как HTML-файлы. См. скрытые файлы для получения дополнительной информации.
Без точки в начале Apache будет игнорировать файл htaccess.
Htaccess Проблема #2: Имя файла не все в нижнем регистре
Если имя файла htaccess содержит буквы в верхнем регистре, оно обычно не работает на Linux или Unix . Это связано с тем, что имена файлов в Linux и Unix обычно чувствительны к регистру. Если в файле htaccess есть заглавные буквы, например. .HTACCESS или .HTaccess , Apache не найдет файл htaccess. Htaccess игнорируется.
Файл htaccess, содержащий заглавные буквы , будет работать на Windows и Mac . Это связано с тем, что имена файлов на этих платформах обычно нечувствительны к регистру.
Я бы рекомендовал использовать строчные буквы, чтобы ваши веб-сайты были переносимы на серверы Linux. Использование заглавных букв также может обойти директивы Apache, предназначенные для предотвращения чтения содержимого файлов .htaccess из Интернета.
Проблема Htaccess № 3: Опечатка имени файла
Распространенные ошибки в написании имени файла htaccess: htacess и htacess . Убедитесь, что в имени файла есть две буквы c и две буквы s.
Htaccess Проблема №4: Htaccess отключен параметром AllowOverride
На некоторых серверах Apache настроен на игнорирование некоторых или всех директив в файлах .htaccess. Это из соображений безопасности. Директива AllowOverride определяет, какие функции будут разрешены в файлах .htaccess. Например, AllowOverride None может отключить файлы htaccess для папки и ее подпапок.
Проверьте файл конфигурации Apache, для которого директива AllowOverride применяется к каталогу, содержащему ваш проблемный файл htaccess.
Если вы не уверены, в каком файле конфигурации искать, начните с основного файла конфигурации Apache httpd.conf или apache2.conf . Если ваш веб-сайт настроен в файле, включенном в httpd.conf (например, в файле конфигурации виртуальных хостов), вам необходимо просмотреть этот файл. См. Расположение httpd.conf в CentOS, Ubuntu, Mac и других системах, чтобы найти свой httpd.conf.
Чтобы включить использование файла .htaccess, измените AllowOverride Нет на AllowOverride Все .
Например, для сервера CentOS 5.3 мне нужно было изменить параметр AllowOverride в файле /etc/httpd/conf.d/virtualhosts.conf .
httpd.conf до:
Параметры Аллововеррайд
httpd.conf после:
Параметры Разрешить переопределить все
Имейте в виду, что включение файлов htaccess имеет последствия для безопасности , так как файлы htaccess переопределяют вашу конфигурацию Apache.
Например, если ваш сайт обеспечивает загрузку, хакер потенциально может загрузить файл .htaccess на ваш сервер и использовать его для получения доступа к вашему серверу. Существуют параметры AllowOverride , ограничивающие директивы, которые будут использоваться из файла .htaccess. См. документацию для AllowOverride.
Проблема Htaccess № 5: неправильный синтаксис 9индекс\.php$ — [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d Правило перезаписи. /index.php [Л]
ЕслиМодуль> # ЗАВЕРШИТЬ WordPress полная чушь тут в конфигеЭто вызывает следующую ошибку в браузере:
Внутренняя ошибка сервера
Сервер обнаружил внутреннюю ошибку или неправильную конфигурацию и не смог выполнить ваш запрос.
Пожалуйста, свяжитесь с администратором сервера, root@localhost и сообщите им время возникновения ошибки и все, что вы могли сделать, что могло вызвать ошибку.
Дополнительные сведения об этой ошибке можно найти в журнале ошибок сервера.
Причина ошибки заносится в журнал ошибок Apache:
[Сб, 26 февраля, 18:21:09 2011] [предупреждение] [клиент 127.0.0.1] /Users/taz/Sites/smartwebdeveloper/.htaccess: недопустимая команда «произнести», возможно, написана с ошибкой или определена модулем, не включенным в сервер конфигурация, ссылка: http://smartwebdeveloper.com/
Другой вариант отладки синтаксиса Apache — поместить содержимое .htaccess в основной файл конфигурации Apache под <Каталог> директива. Apache имеет возможность анализировать и проверять свои файлы конфигурации. Чтобы запустить проверку синтаксиса Apache, введите: httpd -S .
Проблема Htaccess № 6: Настройки Htaccess переопределены другим файлом Htaccess
Несколько файлов .htaccess могут быть прочитаны и применены, если веб-запрос сделан к файлу во вложенных каталогах. Обычно все файлы .htaccess на пути между корневым каталогом веб-сайта и каталогом запрошенного файла будут прочитаны и применены по порядку.
В результате файл htaccess в более глубоко вложенном каталоге может переопределить настройки, сделанные htaccess в каталоге более высокого уровня.
Есть ли другой файл .htaccess в другом каталоге на пути к вашей веб-странице? Этот файл htaccess может переопределять настройки в htaccess, который вы просматриваете.
На Mac, Linux и Unix вы можете найти все файлы .htaccess на своем веб-сайте в терминале:
найти /path/to/website/root -iname .htaccess -print
Заключение
Надеюсь, эта статья помогла вам! Если это так, напишите мне комментарий и дайте мне знать.
Файл .htaccess в корневом каталоге вашей установки работает неправильно.
Начиная с версии 5.3.27.6 мы постепенно переместили все пользовательские файлы (например, шаблоны, изображения баннеров и другие загружаемые файлы) из каталога /accounts/default1 в базу данных программного обеспечения. Основная причина этого шага заключалась в том, чтобы удовлетворить требования к нашей облачной инфраструктуре, где все ежемесячные учетные записи, размещенные у нас, работают с одними и теми же файлами, и единственная разница для разных клиентов — это их база данных.
Для клиентов с самостоятельным размещением это перемещение упрощает перемещение их установки с места на место, поскольку вам не нужны исходные файлы, и вы будете работать только с базой данных и новым установочным архивом.
Для обеспечения обратной совместимости, чтобы вашим партнерам не нужно было менять уже опубликованные баннеры, мы не смогли изменить исходные URL-адреса этих пользовательских файлов, которые находились по адресу …/accounts/default1/. .. на новый URL-адрес …/scripts/file.php?file=… , поэтому мы добавили новые правила mod_rewrite в файл .htaccess вашей установки.
Это означает, что программное обеспечение теперь требует, чтобы mod_rewrite работал правильно на вашем сервере и выполнял правила mod_rewrite. Это требование также проверяется, когда программное обеспечение устанавливается заново или когда вы обновляете его до более новой версии.
Некоторые серверы не работают с файлами .htaccess и требуют специальной настройки, например.
NGINX, IIS или HHVM.
Существует 3 основных сценария, которые может вызвать проверка mod_rewrite:
- Все работает, как и ожидалось, и вы можете продолжить установку или обновление.
- Программа установки смогла запустить тест .htaccess и обнаружила, что правила перезаписи не работают. Вам нужно будет выяснить, почему именно правила .htaccess не работают, возможно, вы неправильно настроили правила перезаписи на своем типе сервера, возможно, на ваш сервер Apache не добавлена поддержка mod_rewrite или, возможно, есть какая-то другая проблема. . Вы можете прочитать дальше, чтобы узнать, как система проверяет правила перезаписи, чтобы вы могли запустить проверку самостоятельно, пытаясь устранить проблему.
- Программа установки не смогла запустить тест .htaccess, поэтому она не может определить, работают ли правила перезаписи, и вам необходимо проверить это самостоятельно, прежде чем продолжить установку.
Проверку .htaccess/mod_rewrite можно выполнить, просто вызвав URL-адреса, которые должны быть переписаны, и посмотреть, показывают ли они те же результаты, что и URL-адреса, для которых они должны быть переписаны.
Допустим, у вас установлен PAP по адресу URL 9.0153 https://www.domain.com/folder/
- вы начинаете тест, открывая URL-адрес несуществующего изображения баннера в своем браузере, например. https://www.domain.com/folder/accounts/default1/banners/NotExistingImage.jpg
- функция mod_rewrite, определенная в файле .htaccess в корневом каталоге вашей установки PAP, отвечает за переписывание этого URL-адреса на https://www.domain.com/folder/scripts/file.php?file=banners/NotExistingImage .jpg
Поэтому, когда вы открываете эти URL-адреса, вы должны увидеть один и тот же результат на обоих, который должен быть пикселем изображения 1 x 1 с кодом ответа 200 OK. Если вы видите 404 Not found на первом URL-адресе, ваша функция mod_rewrite не работает.
Если система не смогла протестировать функциональность mod_rewrite самостоятельно, после того, как вы будете на 100 % уверены, что функциональность перезаписи работает правильно, вы можете нажать «Далее» на экране требований на экране обновления/установки, это должно позволить вам продолжить.
Имейте в виду, что рабочая функциональность mod_rewrite является программным требованием, без которого она не будет работать правильно, поэтому, если вы продолжите обновление/установку с неработающей функцией перезаписи, вы не сможете редактировать файлы шаблонов, загружать новые баннеры. изображений, и вы можете столкнуться со многими другими проблемами.
Если система смогла протестировать функциональность mod_rewrite самостоятельно и обнаружила, что функциональность mod_rewrite не работает, она не позволит вам продолжить обновление/установку, пока вы не устраните проблему.
Наиболее распространенные проблемы, из-за которых mod_rewrite не работает:
1. Конфигурация NGINX добавлена с неверными местоположениями
Конфигурация, описанная в руководстве по установке NGINX, является только примером, поэтому ее необходимо переписать для вашей конкретной установки, с учетом путей и настроек сервера, его нельзя просто скопировать и вставить, возможно, вам нужно будет определить местоположения по-другому.
2. Модуль Apache mod_rewrite вообще не установлен на вашем сервере.
3. AllowOverride не определен с Apache в php.ini или в папке виртуальных хостов
Иногда, даже если mod_rewrite включен и установлен на вашем сервере, правила перезаписи .htaccess по-прежнему не работают. В большинстве случаев решением было добавить директиву AllowOverride All в файл php.ini и перезапустить сервер. Если вы используете виртуальные хосты, вам нужно будет добавить эту директиву в файл .conf в папках /sites-enabled/ или /sites-available/ в конфигурации Apache, например. до 9 лет0153 /etc/apache/sites-available/default , параметр AllowOverride All должен быть добавлен в блок
<Каталог /var/www/> Опционы Индексы FollowSymLinks MultiViews Разрешить переопределение всех Порядок разрешить, запретить разрешить от всех
Как сбросить файл .
htaccess — Центр поддержки хостинга InMotion Знание того, как сбросить файлы .htaccess на вашем сервере, может сэкономить вам много времени. Файл .htaccess — это файл конфигурации, который серверы Apache используют для настройки загрузки страниц и перенаправления. Для запуска WordPress требуется специально настроенный файл .htaccess , но многие темы и плагины будут редактировать файл WordPress .htaccess и могут конфликтовать друг с другом. Самый простой способ разрешить ситуацию — сбросить файл и устранить неполадки оттуда.
- Зачем сбрасывать .Htaccess
- Как деактивировать файл .Htaccess
- Код .Htaccess по умолчанию
- Как сбросить файл .Htaccess вручную
- Как исправить файл .Htaccess
- Как восстановить файл .Htaccess
- Что, если проблема не в файле .Htaccess
Зачем вам сбрасывать .Htaccess
сбросить файл WordPress .htaccess ? Давайте проиллюстрируем причину на примере сценария — при установке темы или плагина на ваш сайт WordPress вы сталкиваетесь с запутанным сообщением об ошибке.
Судя по ошибке, ваша версия PHP устарела. Когда вы проверяете свою версию PHP в MultiPHP Manager cPanel, похоже, что вы используете последнюю доступную версию! Такого рода проблемы — это просто проблемы, вызванные ошибкой кодирования на сайте 9.0023 .htaccess файл. Давайте посмотрим, как устранить эту ошибку WordPress PHP. Примечание : Хотя некоторые люди просто пишут htaccess при обсуждении файла, этот файл правильнее называть .htaccess . Файлы «точек» по умолчанию скрыты от просмотра, но становятся видимыми после настройки определенных параметров. «Точка» необходима для корректной работы файла — без нее сервер не распознает файл!
Как деактивировать файл .Htaccess
Имейте в виду, что удаление или деактивация файла WordPress .htaccess на короткое время приведет к отключению вашего сайта. Возвращение вашего .htaccess к значению по умолчанию может повлиять на некоторые плагины.
Если возможно, вы можете ограничить доступ к своему сайту на время устранения неполадок. После этого давайте перейдем к диспетчеру файлов cPanel и деактивируем этот проблемный файл .htaccess .
- Войдите в cPanel.
- Перейти к Диспетчер файлов в cPanel.
- Перейдите в каталог, содержащий сайт WordPress, который вы устраняете.
- Найдите файл
.htaccess . Если вы не видите файл .htaccess , убедитесь, что вы можете просматривать скрытые файлы.
- Мы не собираемся удалять файл — вместо этого мы переименуем его. Таким образом, вы все еще будете иметь его для справки, если вам нужно перенастроить плагин или тему! Щелкните файл правой кнопкой мыши и выберите Переименовать .
- Вы можете деактивировать файл, просто добавив в конец расширение, которое cPanel не распознает.
.bak — популярный выбор в cPanel и Apache, поскольку он напоминает пользователю, что файл является резервной копией.
Я также предлагаю добавить текущую дату в конец вашего переименованного файла. Это значительно упрощает работу, если вам когда-нибудь придется просматривать файлы позже. Вам будет трудно запомнить разницу между .htaccess1.bak и .htaccess2.bak , но вы легко сможете отличить .htaccess03042019.bak и .htaccess09082019.bak отдельно!
Деактивировав файл .htaccess , вы можете сбросить его вручную или устранить проблему с файлом.
Чтобы получить советы по использованию файлового менеджера для различных задач, ознакомьтесь с нашим руководством по использованию файлового менеджера в cPanel!
Код по умолчанию .Htaccess
Это содержимое по умолчанию в файле WordPress .htaccess . Мы будем ссылаться на него в приведенных ниже советах, поэтому обязательно скопируйте его всякий раз, когда вам нужно перезаписать или заполнить новый файл. 9индекс\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Правило перезаписи.
/index.php [Л]
# END WordPress
Как сбросить файл .Htaccess вручную
Поскольку вы уже деактивировали старый файл WordPress .htaccess , вы можете использовать диспетчер файлов для создания нового файла с именем .htaccess . Просто отредактируйте этот вновь созданный файл, вставьте приведенный выше код по умолчанию, и теперь вы заново создали файл .htaccess . Когда вы сделаете это, вы сможете получить доступ к своему сайту WordPress, но любые пользовательские плагины, которые редактируют .htaccess файл работать не будет. Не волнуйтесь, ниже мы расскажем, как это исправить.
Как исправить файл .Htaccess
Если вы пытались обновить WordPress или плагин, вы сможете сделать это сейчас. Как только все будет обновлено, вы, вероятно, захотите деактивировать и повторно активировать свои плагины один за другим. Многие подключаемые модули добавляют код в файл .htaccess как часть их установки — повторная активация подключаемых модулей должна вернуть весь необходимый код обратно в .
htaccess файл. Делайте это по одному, чтобы вы могли определить, вызывает ли конкретный плагин ошибку.
Для более простых сайтов повторной активации плагина должно быть более чем достаточно. Если вы используете плагины, которые помещают много пользовательского кода в файл .htaccess , вам может потребоваться открыть старую версию .htaccess в файловом менеджере cPanel и скопировать соответствующий код на новый . .htaccess .
Если вы выполнили все эти шаги только для того, чтобы проблема повторилась, вам нужно сузить список плагинов, вызывающих проблему. При повторной активации плагинов активируйте только по одному. Подождите немного между каждым и посмотрите, не вызывает ли определенный плагин на вашем сайте ту же проблему, которую вы изначально устраняли.
Это немного больно? Определенно да! Но это самый простой и прямой способ выяснить, в чем проблема с плагином. Как только вы сузите круг вопросов, вы сможете решить, хотите ли вы заменить плагин, обновить плагин, просто деактивировать его или обратиться к разработчику плагина для дальнейшего устранения неполадок.


html index.htm index.shtml index.php
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog "logs/error.log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access.log" common
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/"
</IfModule>
<Directory "c:/Apache24/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule mime_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
</IfModule>
<IfModule proxy_html_module>
Include conf/extra/proxy-html.
d/apache2 restart