по умолчанию Apache запрещает использование an .файл htaccess для применения правил перезаписи, поэтому
это активирует модуль или предупредит вас, что модуль уже включен. Чтобы эти изменения вступили в силу, перезапустите Apache.
и mod_rewrite теперь полностью включен. В следующий шаг мы установим .htaccess файл, который мы будем использовать для определения правил для перенаправления.
внутри этого файла вы найдете блок, начинающийся с первой строки. Внутри этого блока добавьте следующий новый блок, чтобы ваш файл конфигурации выглядел следующим образом. Убедитесь, что все блоки правильно изрезанный.
сохранить и закрыть файл. Чтобы эти изменения вступили в силу, перезапустите Apache.
сделано. Ваш.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
.
Если вы выполнили все эти шаги только для того, чтобы проблема повторилась, вам нужно сузить список плагинов, вызывающих проблему. При повторной активации плагинов активируйте только по одному. Подождите немного между каждым и посмотрите, не вызывает ли определенный плагин на вашем сайте ту же проблему, которую вы изначально устраняли.
Это немного больно? Определенно да! Но это самый простой и прямой способ выяснить, в чем проблема с плагином. Как только вы сузите круг вопросов, вы сможете решить, хотите ли вы заменить плагин, обновить плагин, просто деактивировать его или обратиться к разработчику плагина для дальнейшего устранения неполадок.