Как создать файл .htaccess
Основы Unreal Engine 5
Пройдя курс:
— Вы получите необходимую базу по Unreal Engine 5
— Вы познакомитесь с множеством инструментов в движке
— Вы научитесь создавать несложные игры
Общая продолжительность курса 4 часа, плюс множество упражнений и поддержка!
Чтобы получить Видеокурс,
заполните форму
E-mail: | |
Имя: | |
Другие курсы
Как создать профессиональный Интернет-магазин
После семинара:
— Вы будете знать, как создать Интернет-магазин.
— Вы получите бесплатный подарок с подробным описанием каждого шага.
— Вы сможете уже приступить к созданию Интернет-магазина.
Записаться
Другие курсы
Человек не будет наслаждаться едой и питьем, если не перестрадает от голода и жажды.
Аврелий Августин
Сервер Apache (на котором и находится большинство сайтов) имеет очень полезную возможность задавать определённые настройки сервера для конкретной директории (в частности, для одного сайта). Такой файл называется .htaccess. Однако, создавать его в Windows-системе так просто не получится. В этой статье я расскажу новичкам, как создаётся .htaccess в Windows.
Особенность файла состоит в том, что он не имеет имени, у него лишь расширение. Это норма для Unix-систем, но в Windows это не совсем норма. Итак, порядок действий для создания .htaccess следующий:
- Открыть текстовый редактор (Notepad++ или даже обычный Блокнот).
- В меню «Файл» выбрать «Сохранить как «.
- В выпадающем списке «Тип файла» выбрать «Все файлы«.
- Ввести в качестве имени «.htaccess» (разумеется, без кавычек).
- Нажать на кнопку «Сохранить«.
Всё, файл .htaccess создан. Далее можно его вновь открывать в любом текстовом редакторе и редактировать.
Для новичков кое-что добавлю. В этом файле надо сразу прописать кодировку сайта. Если это UTF-8:
AddDefaultCharset UTF-8
Если это windows-1251:
AddDefaultCharset CP1251
Далее этот файл надо поместить в корень сайта, там где находится index-файл (как правило, это index.html или index.php). Я об этом написал, поскольку у многих новичков проблемы с кодировкой на сайте именно по этой причине.
- Создано 18.01.2013 11:20:36
- Михаил Русаков
Предыдущая статьяСледующая статья
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov. ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
<a href=»https://myrusakov.ru» target=»_blank»><img src=»https://myrusakov.ru/images/button.gif» alt=»Как создать свой сайт» /></a> Она выглядит вот так: - Текстовая ссылка:
<a href=»https://myrusakov.ru» target=»_blank»>Как создать свой сайт</a>Она выглядит вот так: Как создать свой сайт
- BB-код ссылки для форумов (например, можете поставить её в подписи):
[URL=»https://myrusakov. ru»]Как создать свой сайт[/URL]
Создание и настройка .htaccess — Виртуальный хостинг
Общие сведения
.htaccess — это конфигурационный файл веб-сервера Apache, который позволяет задавать различные настройки для работы веб-сервера, применяемые для конкретных каталогов пользователя.
Параметры, указанные в .htaccess, не затрагивают настройки главного конфигурационного файла Apache и имеют силу только для каталога, в котором этот файл размещен, и его подкаталогов. Для подкаталогов также можно создавать дополнительные .htaccess-файлы; при этом необходимо учитывать, что настройки .htaccess, заданные в подкаталоге, переопределят настройки, назначенные для него в файле .htaccess, размещенном на уровне выше.
Настройки в .htaccess задаются различными директивами, которые далее обрабатываются и выполняются веб-сервером. С помощью .htaccess можно настраивать перенаправления, управлять опциями PHP, устанавливать разрешения и права доступа к файлам, задавать собственные страницы ошибок и выполнять множество других действий.
Создание и редактирование .htaccess
Создать файл настроек .htaccess вы можете при помощи файлового менеджера панели управления аккаунтом.
- Перейдите в раздел «Файловый менеджер» панели управления.
- Выберите пункт меню «Файл» — «Новый файл».
- Выберите из списка расширений .htaccess.
- Нажмите кнопку «Создать файл».
Возникновение ошибки «Имя уже используется» означает, что данный файл уже создан в текущей директории.
Для редактирования файла в файловом менеджере перейдите в директорию с данным файлом, выделите его кликом левой кнопки мыши и выберите пункт меню «Файл» — «Редактировать».
В открывшейся форме редактирования можно внести необходимые изменения в файл конфигурации: добавить или удалить директивы. Также можно закомментировать неиспользуемые настройки, для этого необходимо добавить в начале строки символ #. Настройки, указанные в таких строках, учитываться не будут.
Вы также можете редактировать .htaccess во внешних редакторах, но обратите внимание, что текстовые редакторы Windows (например, «Блокнот») при сохранении любых документов с кодировкой UTF-8 добавляют в них метки порядков байтов юникода — BOM-сигнатуры. Файлы с такой сигнатурой некорректно обрабатываются веб-сервером, поэтому мы рекомендуем редактировать .htaccess напрямую в «Файловом менеджере» или через специальный редактор «Notepad++».
Примеры настроек
Перенаправления
Настройка редиректов описана в отдельной статье: Типовые перенаправления.
Параметры PHP
Настройка опций PHP через .htaccess описана в отдельной статье: Настройка параметров PHP.
Управление доступом к сайту
Разрешить или ограничить доступ к сайту для определенных IPv4-адресов можно с помощью директив Order Allow,Deny или Require. В новых версиях Apache, начиная с 2.4, которая используется на наших хостинговых серверах, рекомендуется использовать именно Require.
Обратите внимание, что в рамках нашей архитектуры директивы запрета доступа не будут работать для IPv6. Для запрета доступа с IPv6-адресов необходимо удалить АААА-запись домена.
Разрешить доступ конкретным IP (для остальных доступ запрещен):
Require ip 1. 1.1.1
Require ip 2.2.2.2
Несколько IP-адресов могут указываться через пробел или отдельными директивами, каждая в новой строке.
Запретить доступ конкретным IP (для остальных доступ разрешен). Для работы запрещающих директивы, их необходимо заключать в блоки <RequireAll>
:
<RequireAll>
Require all granted
Require not ip 1.1.1.1
</RequireAll>
При использовании Allow,Deny
:
Разрешить доступ всем, кроме конкретного IP:
Order Allow,Deny
Allow from all
Deny from 1.1.1.1
Запретить доступ всем, кроме конкретного IP:
Order Deny,Allow
Deny from all
Allow from 1.1.1.1
Запретить доступ для всех:
Deny from all
Аналогичным образом можно настроить доступ к конкретным файлам, включив эти директивы в блоки <Files>, например:
<Files myfile.html>
Require all denied
Require ip 1.1.1.1
</Files><Files myfile.html>
Order Deny,Allow
Deny from all
Allow from 1. 1.1.1
</Files>
Защита сайта или директории паролем. Базовая аутентификация
Если требуется защитить сайт или конкретную папку сайта паролем, можно воспользоваться базовой аутентификацией, которая работает на уровне веб-сервера Apache и настраивается также с помощью файла .htaccess.
- В первую очередь задайте логин и пароль, которые будут использоваться для входа. Для этого подключитесь к аккаунту по SSH и выполните команду ниже, указав нужные вам значения:
htpasswd -bc ~/.htpasswd логин пароль
- После выполнения команды в корневом каталоге вашего аккаунта будет создан файл .htpasswd, содержащий логин и хэш-сумму пароля. Если в дальнейшем вам потребуется изменить указанный пароль, снова используйте команду выше.
- Перейдите в директорию, которую необходимо защитить паролем (например, это может быть директория wp-admin), и создайте в ней файл .htaccess со следующим содержимым, указав вместо u и user первую букву вашего логина и сам логин:
AuthType Basic
AuthName "Authentication Required"
AuthUserFile /home/u/user/. .*$ - [R=404,L]
Ограничения по видам запросов
Для применения ограничений для определенных методов запросов можно использовать блоки <Limit>:
SetEnvIfNoCase User-Agent SolomonoBot bad_bot
SetEnvIfNoCase User-Agent MJ12Bot bad_bot<Limit GET POST HEAD>
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</Limit>
Для новых версий Apache, начиная с 2.4, оптимально использовать директивы Require и заключать их в блоки <RequireAll>:
SetEnvIfNoCase User-Agent SolomonoBot bad_bot
SetEnvIfNoCase User-Agent MJ12Bot bad_bot<Limit GET POST HEAD>
<RequireAll>
Require all granted
Require not env bad_bot
</RequireAll>
</Limit>
Индексная страница по умолчанию
Директива DirectoryIndex позволит вам указать страницу, которая будет отдаваться по умолчанию при обращении к директории, например:
DirectoryIndex new_index. html
Вы также можете указать несколько страниц, в этом случае сервер «пройдет» по списку слева направо и отобразит первую доступную страницу:
DirectoryIndex new_index.html index.html index.php
Собственные страницы ошибок
С помощью директивы ErrorDocument вы можете сообщить веб-серверу, какая страница должна отдаваться клиенту в случае возникновения определенной ошибки (403, 404, 500 и др.). Для этого необходимо указать номер ошибки и адрес нужной страницы:
ErrorDocument 500 http://domain.ru/errors/page500.html
Вы можете хранить файлы этих страниц как в корне сайта, так и в специально созданной папке, например, errors.
Кодировка
Указать кодировку по умолчанию (например, cp1251, utf-8, koi8-r) для всех выдаваемых страниц можно с помощью AddDefaultCharset, например:
AddDefaultCharset cp1251
При использовании PHP версии 5.6 и выше может потребоваться дополнительно указать:
php_value default_charset cp1251
Отображение листинга (содержимого директории)
Если индексный файл запрашиваемой клиентом директории недоступен, будет выведена ошибка «403 Forbidden». Если вместо этого необходимо отображение содержимого директории, потребуется добавить в .htaccess директиву:
Options +Indexes
Как использовать и создавать файлы .htaccess
Вы можете внести изменения в конфигурацию для каждого каталога, создав файлы .htaccess на сервере Apache (хотя существуют и другие варианты сервера). Директивы, которые вы создаете в файле .htaccess, будут управлять каталогом, в котором находится файл, — поместите файл на корневой уровень каталога.
Руководство по использованию и созданию файлов htaccess
Как создать файл .htaccess:
Как и большинство других типов файлов, вы можете создать файл, переименовав простой текстовый документ и присвоив ему имя «.access». Однако пользователям Windows может потребоваться внести изменения, чтобы иметь возможность просматривать файлы .htaccess в своей системе, что представляет собой простое изменение конфигурации, позволяющее просматривать «скрытые файлы». Dreamweaver может не распознавать файлы .htaccess из-за того, что они по умолчанию имеют нераспознаваемое расширение файла. Если вы используете Dreamweaver или аналогичную программу для редактирования кода, выберите «открыть файл с помощью Dreamweaver». Две программы, которые отлично подходят для редактирования файлов .htaccess: NotePad или SimpleText. По умолчанию Блокнот сохраняет файл .htaccess.txt, поэтому вам нужно будет удалить расширение .txt.
Примечание: .htaccess — это расширение файла. Это не file.htaccess или somepage.htaccess, это просто имя .htaccess
Общие замечания по .htaccess
- Файлы htaccess необходимо загружать в формате ASCII, не ДВОИЧНЫЙ
- Вам нужно будет изменить CHMOD файл htaccess на 644 или (RW-R—R—), чтобы сервер мог использовать файл (и предотвратить его чтение браузером)
- Команды в htaccess в основном однострочные: вам может понадобиться отключить автоматический перенос слов
- . htaccess также повлияет на подкаталоги, в которых они размещены
Используйте .htaccess для защиты каталога паролем
Вы можете использовать .htaccess для пароля каталога на вашем сервере. Существует множество подходов к созданию системы аутентификации. Htaccess можно использовать для паролей. Поместите имя пользователя и пароль в файл htpasswd.
AuthUserFile /full/path/to/.htpasswd
AuthType Basic
AuthName «Мой каталог для защиты»
Требовать действительного пользователя
Полный/путь/к/.htpasswd должен быть полным путем к файлу .htpasswd. Например, в Windows это может выглядеть так: C:\wwwrootlevel\username\.htpasswd.
Приведенный выше файл .htaccess защитит паролем все файлы в папке, в которую он помещен, включая все подпапки.
Использовать .htaccess для защиты одного файла
AuthUserFile /full/path/to/.htpasswd
AuthType Basic
AuthName "Моя секретная страница"
html">
Требовать действительного пользователя
Этот сценарий защитит паролем только файл mywebfile.html в папке, в которую вы поместили файл .htaccess.
Изменение страницы каталога по умолчанию
Вы можете указать определенный файл в качестве индексного файла (индекс каталога). По умолчанию index.html или index.htm часто является индексом по умолчанию для каталогов. Допустим, вы хотите использовать другой файл в качестве индекса вашего каталога, вы можете использовать .htaccess для указания файла.
DirectoryIndex имя файла.html
Перенаправления с использованием .htaccess
Вы также можете создавать перенаправления с использованием .htaccess. Например, постоянные перенаправления 301 очень важны для целей SEO, поскольку они позволяют Google и другим поисковым системам узнать, был ли файл перемещен и где его найти.
Перенаправление /olddirectory/oldfile.html https://yoursite.com/newdirectory/newfile.html
Использование .htaccess, чтобы все страницы .html запускались как файлы .php?
спросил
Изменено 8 месяцев назад
Просмотрено 142к раз
Мне нужно запустить все мои файлы .html как файлы .php, и у меня нет времени менять все ссылки до нашей завтрашней презентации. Есть ли способ «взломать» это с помощью моего сервера Apache?
- php
- html
- apache
- .htaccess
2
Создайте файл .htaccess в корне вашего веб-сайта и добавьте следующую строку:
[Apache2 @ Ubuntu/Debian: используйте эту директиву]
AddType application/x-httpd-php . html .htm
Или из комментария ниже:
AddType application/x-httpd-php5 .html .htm
Если вы используете PHP как CGI (вероятно, это не так), вы должны вместо этого написать:
Приложение AddHandler/x-httpd-php .html .htm
8
В My Godaddy Server работал следующий код
Options +ExecCGI Приложение AddType/x-httpd-php .php .html AddHandler x-httpd-php5 .php .html
1
Это редакция для всех других правильных ответов:
Если вы не можете найти правильный обработчик, просто создайте файл .php со следующим содержимым:
и запустите/откройте этот файл в браузере.
Используйте этот вывод в файле .htaccess
Создайте файл .htaccess в корне вашего веб-сайта (обычно папка с именем public_html или htdocs на серверах Linux) и добавьте эту строку:
AddType [[ВЫВОД ИЗ ВЫШЕ ФАЙЛ]] . html .htm
Пример
Приложение AddType/x-httpd-php70 .html .htm
Важное примечание:
Если вы видите пустую страницу или Примечание: неопределенный индекс: REDIRECT_HANDLER
Попробуйте использовать значение по умолчанию в .htaccess
AddHandler application/x-httpd-php .html
2
Вы также можете использовать флаг H или T в mod_rewrite для принудительного анализа всех файлов .html обработчиком php:
с использованием флага H (Handler):
RewriteEngine on RewriteRule \.(html|htm)$ - [H=application/x-httpd-php5]
с использованием флага T (тип):
RewriteEngine включен RewriteRule \.(html|htm)$ - [T=application/x-httpd-php5]
Или вы можете добавить дополнительные расширения к шаблону правила, разделенные вертикальной чертой | , который вы хотите проанализировать обработчиком php
ex:
RewriteRule \. (html|htm|txt|foo)$ - [T=application/x-httpd-php5]
приведенный выше пример изменит MIME-тип файлов, которые заканчиваются на .html , .htm , .txt , .foo на php.
Примечание: на некоторых серверах вам придется изменить php5 на php , чтобы этот пример работал в строке обработчика:
Измените его
[T=application/x-httpd-php5]
—
[T=application/x-httpd-php]
Вам необходимо добавить следующую строку в файл конфигурации Apache:
AddType application/x-httpd-php .htm .html
Вам также понадобятся две другие вещи:
Разрешить переопределение
В
файл your_site.conf
(например, под/etc/apache2/mods-available
в моем случае), добавьте следующие строки:"> Разрешить переопределить все Каталог> Включить мод перезаписи
Запустите эту команду на своем компьютере:
sudo a2enmod переписать
После любого из этих шагов вы должны перезапустить apache:
перезапуск службы sudo apache2
Для тех, у кого все еще есть проблемы,
попробуйте это (мой хостинг был от Godaddy, и это единственное, что сработало для меня среди всех ответов).
AddHandler x-httpd-php5-cgi .html
Я думаю, что это лучший способ запуска php-скрипта на html и htm-страницах:
AddType application/x-httpd-php5 .html .htm
Обычно вы должны добавить:
Опции +ExecCGI Приложение AddType/x-httpd-php .php .html AddHandler x-httpd-php5 .php .html
Однако для виртуального хостинга GoDaddy (php-cgi) необходимо добавить также следующие строки:
AddHandler fcgid-script .html FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .html
Источник: Анализ HTML как PHP с использованием файла HTACCESS на Godaddy.
2
Запуск файлов .html, поскольку php внезапно перестал работать в моем файле .htaccess.
Поддержка Godaddy заставила меня изменить его на:
AddHandler application/x-httpd-lsphp .html
2
поместите это в свой .htaccess
AddType application/x-httpd-php . php .htm .html
больше информации на этой странице
0
Использование подхода @Marc-François Firefox предложил мне загрузить html-файл
Наконец, у меня работает следующее (используя оба):
AddType application/x-httpd-php .htm .html
AddHandler x-httpd-php .htm .html
Приложение AddHandler/x-httpd-php .php .html .htm // или же Приложение AddType/x-httpd-php .php .htm .html
1
Я использую PHP7.1, работающий на моем Raspberry Pi 3.
В файле /etc/apache2/mods-enabled/php7.1.conf
я добавил в конце:
AddType application/x- httpd-php .html .htm .png .jpg .gif
На серверах Dreamhost вы можете обратиться к этой странице, которая на момент написания указывает, что вы можете использовать следующее для php 7.2 с FastCGI:
AddHandler fcgid-скрипт . html FcgidWrapper "/dh/cgi-system/php72.cgi" .html
Или, если вы используете php5 cgi (не FastCGI):
AddHandler php5-cgi .html
Ни один из ответов, размещенных здесь, не помог мне.
В моем случае проблема заключалась, с одной стороны, в том, что файл .conf (/etc/apache2/sites-available/default-ssl.conf или /etc/apache2/sites-available/000-default.conf) не содержал директивы AllowOverride All
для каталога сайта, из-за чего .htaccess не обрабатывался. Чтобы решить эту проблему, добавьте:
<Каталог /var/www/html/> Индексы опционов FollowSymLinks Разрешить переопределить все Требовать все предоставленные Каталог>
С другой стороны, проблема заключалась в том, что .htaccess был создан пользователем root, и поэтому пользователь apache не мог его прочитать. Итак, смена владельца файла определенно решила проблему:
chown www-data:www-data .htaccess
Сначала прочитайте это: https://httpd.