DirectoryIndex index.html index.htm index.php
Таким образом, будет происходить следующее: при обращении к каталогу будет возвращён файл index.html, если его нет, то index.htm, а если и его нет, то index.php. То есть мы не просто определили те файлы, которые должны открываться по умолчанию, но и их приоритет.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Комментарии ( 5 ):
Здравствуйте Михаил! Я сегодня задавал вам вопрос как соеденить HTML с PHP! Вот я сделал так! Я на сервер DENWER в папку WWW которая находится в папке home кинул файлы HTML, CSS и JavaScript! Также папку image в которой находятся картинки! в HTML в теге HEAD я написал КОД, чтобы соеденить CSS и JavaScript! А чтобы соеденить HTML с PHP я воспользовался вашей статьёй и ввёл «DirectoryIndex index.html» в файл PHP! Всё заработало, но правильно ли я сделал?
Работает, и хорошо, всё равно, когда будете выкладывать на хостинг, всё расположение будет изменено.
А вы можете обьяснить как вы делали сайт? Как вы обьединяли HTML с PHP?
Я писал свой движок. Вы не знаете даже основ PHP, поэтому даже не задумывайтесь об этом, ещё рано. Сначала изучите базовые вещи, а уже потом и будете заниматься сложными.
Хех. Вот сейчас читаю, что я писал раньше и думаю какая фигня:) Сейчас уже свой движок написал, а раньше спрашивал как соединить html и php ))) Спасибо, Михаил. Благодаря Вам и Вашему сайту, я смог достичь такого успеха.
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.
Htaccess – Options Indexes, DirectoryIndex, IndexIgnore и прочие опции
Время на чтение: 10 минут
Сайт невозможно правильно настроить, если не влазить в файлы конфигураций, такие как htaccess. При помощи него вы сможете скрыть некоторые части ресурса от индексации, запретить просмотр директорий, закрыть доступ к отдельным папкам, установить переадресацию и произвести склейку зеркал. В данной статье будут рассмотрены некоторые полезные возможности файла htaccess, которые понадобятся вам для индексации и улучшения работы веб-ресурса.
Что собой представляет файл htaccess
Чтобы корректно настроить сайт при помощи файла дополнительных конфигураций htaccess, вы должны осознать принцип его работы. Стоит отметить, что не каждый сайт поддерживает такой файл, а лишь сервера, наподобие Apache. На таких серверах обязательно должны быть настройки, которые определяют возможности файла htaccess.
Для многих пользователей htaccess – это файл для гибких настроек отдельных папок. Дело в том, что htaccess может влиять не на весь сайт, а только на отдельный каталог, в котором он размещен.
Приоритетность действия файла htaccess определяется его расположением, как уже было сказано выше. При этом действие распространяется не только на каталог, в котором размещен файл дополнительных конфигураций, а и на все внутренние папки. Допустим, если вы хотите скрыть от индексации определенный раздел ресурса, вы можете разместить внутри него файл htaccess с соответственными настройками. А если понадобится открыть для индексации какой-то раздел, который находится внутри каталога с файлом htaccess, то вы можете для него сделать отдельный конфигурационный файл и он будет ему подчиняться.
Как пользоваться директивами DirectoryIndex, Options и Options All Indexes
Опции Options Indexes и Options All Indexes необходимы для того, чтобы разрешить или запретить листинг каталогов сайтов. Приставка All означает, что эта опция будет действовать на все каталоги и папки. То есть настройка Options All не является гибкой для отдельных директорий, а сразу для всех, которые подчиняются данному файлу htaccess. Размещать файл htaccess с настройкой Options All следует в корне сайта, либо в одном из ключевых разделов, доступ к папкам которого вы хотите отключить.
Практичное применение функции Options для отдельных папок сводится к тому, чтобы лишить ваш сайт ошибки 403. Лучше для индексации, чтобы на странице появлялся листинг файлов, чем надпись о HTTP-ошибке. А возникает ошибка в результате того, что в каталоге не обнаружено индексного файла. Чтобы закрыть этот вопрос, вам следует прописать в htaccess опцию Options +Indexes. После того, как вы добавите файл дополнительных конфигураций с этой строчкой в одну из директорий сайта, в случае отсутствия в ней документа index, будет открываться листинг папки со списком файлов внутри.
Учтите, что опция Options Indexes с плюсом или минусом не всегда будет действовать на все папки, находящиеся внутри каталога с htaccess. Для этого необходимо скорректировать некоторые настройки на сервере Apache. В частности, нужно поставить опцию AllowOverride All. Обычно, она установлена по умолчанию, но иногда вместо All бывает прописано None, что ограничивает действие Options Indexes только до текущей папки с файлом htaccess.
Также стоит обратить внимание и на то, что опция Options Indexes напрямую связана с настройкой строки DirectoryIndex внутри файла htaccess. Опция DirectoryIndex нужна для того, чтобы определить индексный файл внутри папки. Команда DirectoryIndex также действует на внутренние каталоги папки, в которой размещена. Суть опции DirectoryIndex в том, что она определяет файлы, которые необходимо считать индексными.
Когда вы запрашиваете определенный каталог, заходя на сайт через URL, вы не прописываете индексный файл, который следует открыть. По умолчанию, сначала открывается файл index формата php, потом html-формата и в последнюю очередь – index с разрешением htm. Как известно, если этих файлов в папке нет, то сайт перебрасывает вас на страницу с ошибкой 403. Если у вас активирована опция Options +Indexes, то вы увидите листинг каталога вместо ошибки. Но благодаря DirectoryIndex вы можете сделать так, чтобы пользователь попадал на другую страницу.
Внутри команды DirectoryIndex нужно лишь прописать файлы, которые сайт должен считать индексными для данного каталога. Если первым в DirectoryIndex вы пропишите файл index формата php, то он будет считаться приоритетнее всех последующих. Но нет смысла прописывать файл index формата php первым в DirectoryIndex, а после него указывать два последующих индексных документа, потому что эта настройка и без того активирована по умолчанию. А вот если в конце команды DirectoryIndex после файла php и всех остальных вы пропишите mainpage.html, то в случае отсутствия “индексов” откроется главная. Это лишь один из вариантов, как можно использовать опцию DirectoryIndex у себя на ресурсе. К сожалению, мало кто пользуется этой командой, потому у вас есть все шансы стать первооткрывателем возможностей данной опции.
В чем разнца между Options Indexes и IndexIgnore
Сделать одно и то же внутри файла htaccess можно разными способами. В этом и кроется преимущество использования именно этого конфигурационного файла для определения различных опций. К примеру, вы сможете не просто открыть листинг для каталогов без индексных папок, но и гибко его настроить, чтобы скрыть с посторонних глаз важные файлы сайта. Для этого необходимо использовать опцию IndexIgnore.
Суть команды IndexIgnore в том, что она позволяет игнорировать наличие определенных файлов внутри папки, чтобы они не демонстрировались при листинге каталога. Например, если у вас есть какой-то файл с паролями passv.txt внутри папки. Если вы укажите Options +Index в htaccess внутри этой папки, то в случае отсутствия индексных файлов в листинге каталога появится файл, который не стоит показывать посторонним. А если вы пропишите в файле htaccess строку IndexIgnore passv.txt, то в листинге не окажется этого тайного файла – он будет скрыт для пользователей.
Если по какой-то причине вы хотите, чтобы листинг каталога был пустым, то в опции IndexIgnore не обязательно указывать перечисление всех файлов – можно прописать звездочку “*”. Если же вам нужно запретить просмотр нескольких файлов, то укажите их через пробел в опции IndexIgnore.
Как убрать упоминание об index формата php и прочих “индексах” из URL
Убрать из ссылок индекс php, html, htm и прочие – это разумное решение. Особенно важно избавиться от упоминания индексного файла формата php в том случае, если он появляется при попадании на главную страницу. Убрать этот файл php из URL даже необходимо, потому что он вредит индексации. При этом вам не нужно будет удалять сам файл расширения php, потому как стоит убрать один файл, как в URL появится другой “индекс”, к примеру index.html.
Чтобы закрыть показ в ссылках индекса php, вам нужно прописать это в файле htaccess. Убрать такое зеркало главной можно при помощи опции Rewrite, которая необходима для переадресации. Для этого вам нужно будет прописать две строки. Первая строка – RewriteEngine On, активирует запуск переадресации, а вторая нужна будет для указания правила. В этом правиле нужно будет указать индекс php формата, чтобы навсегда убрать его из ссылок. И вот как будет выглядеть вторая строка:
RewriteRule ^index.php$ / [QSA,R]
Не забудьте поместить файл htaccess с этой опцией в корневую папку сайта, иначе он не будет действовать на главную страницу. Это значительно поможет индексации, и является практически обязательным действием во время оптимизации сайта. Точно таким же образом следует пропечатать в htaccess переадресацию URL с указанием WWW на вариант без WWW. Это действие называется склейкой и также необходимо для того, чтобы ваш сайт улучшил позиции в поиске.
Как можно закрыть весь сайт или отдельную его часть от индексации
Стоит отметить, что такую опцию можно прописать не только внутри файла htaccess. Достаточно часто, чтобы закрыть ресурс от индексации, используют файл robots.txt. Он необходим как раз для того, чтобы управлять поисковыми роботами, потому разумно указывать параметры индексации именно в нем. Так, чтобы закрыть доступ ко всем директивам сайта в файле robots.txt можно прописать всего две строчки:
Если вы не пропишите слэш в конце строки Disallow: внутри файла robots.txt, то с точностью наоборот разрешите индексацию для всех папок. Если же вы хотите закрыть доступ только для некоторых папок, то укажите их после строки Disallow. Учтите, что есть разница в указании папки со слэшем или без него. Если вы пропишите название папки без слэша, например /images, то индексация будет запрещена не только для указанной папки, но и для страниц, которые в названии содержат слово images. Потому лучше пишите запрет индексации в следующем виде Disallow: /images/.
Но чтобы прописывать сложные условности в файле htaccess, нужно иметь достаточный опыт для этого и знания. Потому вам следует почитать блоги иностранных веб-разработчиков, которые умеют настраивать htaccess гораздо лучше, чем вебмастера Рунета, судя по однообразности обучающих материалов в русском Интернете.
.htaccess — это дополнительный конфигурационный (служебный) файл, с помощью которого можно управлять настройками сервера. Он применяется в том случае, если хостинг-провайдер использует программное обеспечение Apache.
Нажмите Файл → Сохранить как (или используйте комбинацию горячих клавиш Ctrl + Shift + S):
В графе «Тип файла» выберите Все файлы. Затем в поле «Имя файла» введите «.htaccess» и нажмите Сохранить:
Готово, файл создан.
Интерфейс проводника в Windows 10
Когда файл будет готов, залейте его в корневую папку сайта. Для этого войдите в панель управления и следуйте подходящей инструкции:
ISPmanager
Готово, файл добавлен в «корень» сайта.
cPanel
В блоке «Файлы» нажмите Менеджер файлов:
Найдите в списке слева домен вашего сайта, кликните по нему и в строке сверху нажмите Загрузить:
Готово, файл будет загружен.
Plesk
В блоке нужного домена выберите Менеджер файлов:
Готово, файл будет загружен.
Создать файл и загрузить его в корневую папку сайта — только первый шаг. Следующий и самый важный — начать работать с настройками, о которые мы описывали выше.
Где DirectoryIndex — ключ, а index.php — значение (страница, которую вы хотите использовать в качестве главной страницы сайта).
Чтобы внести какую-либо директиву в конфигурационный файл вашего сайта:
Как запретить доступ к файлу, папке или всему сайту
Когда на сайте идут «ремонтные работы», он функционирует нестабильно. Чтобы в это время на него не заходил никто, кроме разработчиков, можно ограничить доступ к сайту или отдельным файлам.
Чтобы закрыть доступ от всех посетителей, кроме конкретного IP (через запятую можно указать несколько IP-адресов) введите:
Где 123.123.123.123 — IP-адрес, для которого доступ разрешен.
Где example.exe — название файла, к которому нужно закрыть доступ.
Как запретить доступ к файлам определенного типа
Для этого добавьте следующие строки:
Где вместо txt, pdf, jpg — нужные вам расширения.
Чтобы открыть отображение листинга, введите:
Как настроить 301 редиректа для сайта
Рассмотрим самый часто используемый тип: редирект с одного домена на другой. Он используется, если сайт переехал на новый домен из-за ребрендинга, изменения официального названия компании или причин технического характера.
Где site1.ru — исходный домен, site2.ru — целевой домен.
Как включить обработку ошибок
# Закрыт доступ к просмотру листинга (списка директорий) сайта:
# Задана пользовательская страница для ошибки 404:
Где искать и как редактировать
.htaccess — общепринятое и самое популярное название, но не обязательное (оно задается в файле httpd.conf). Несмотря на непривычное название, создавать и редактировать файл можно в любом текстовом редакторе.
Некоторые CMS дают возможность редактировать файл через административную панель. В Битриксе его легко можно найти в разделе Контент — Файлы и папки:
Синтаксис файла простой: каждая директива (команда) начинается с новой строки, после знака # можно добавлять комментарии, которые не будут учитываться сервером. Изменения на сайте вступают в силу сразу, перезагрузка сервера не требуется.
Правила задаются в том числе при помощи регулярных выражений. Для того, чтобы их прочитать, нужно понимать значение спецсимволов и переменных. Расшифруем самые часто используемые.
Основные спецсимволы:
Основные переменные:
Настраиваем редиректы для SEO
При настройке 301 редиректов помните о двух правилах:
1. Настраиваем постраничные 301 редиректы
Это потребуется в следующих случаях:
Просто удалить страницу — плохая идея, лучше не отдавать роботу ошибку 404, а перенаправить его на другой URL. В этом случае есть шанс не потерять позиции сайта в выдаче и целевой трафик. Настроить 301 редирект с одной страницы на другую можно при помощи директивы простого перенаправления:
2. Избавляемся от дублей
Каждая страница сайта должна быть доступна только по одному адресу. Для этого должны быть настроены:
Переадресация на слеш или наоборот
Настроить ли переадресацию на страницы со слешем или без, в каждом случае нужно решать индивидуально. Если у сайта уже накоплена история в поиске, анализируйте, каких страниц в индексе больше. Для новых сайтов обычно настраивают редирект на слеш. Проверить, не настроена ли переадресация по умолчанию, просто: удалите/добавьте слеш в конце URL. Если страница перезагрузится с новым адресом — мы имеем дубли, требуется настройка. Если URL подменяется — все в порядке. Проверять лучше несколько уровней вложенности.
Код 301 редиректа на слеш:
Код 301 редиректа на страницы без слеша:
3. Настраиваем главное зеркало
Редирект на HTTPS
Определять, с «www» или без будет главное зеркало, можно несколькими способами:
После того как выбор сделан, воспользуйтесь одним из двух вариантов кода.
Редирект с www на без www
Редирект с без www на www
4. Перенаправляем с одного домена на другой
Самая очевидная причина настройки этого редиректа — переадресовать роботов и пользователей на другой адрес при переезде сайта на новый домен. Также им пользуются оптимизаторы для манипуляций ссылочной массой, но дроп-домены и PBN — серые технологии продвижения, которые в рамках этого материала мы затрагивать не будем.
Воспользуйтесь одним из вариантов кода:
Не забудьте поменять в коде «mysite1» и «mysite2» на старый и новый домен соответственно.
Модуль SEO в системе Promopult: для тех, кто не хочет тонуть в рутине. Все инструменты для улучшения качества сайта и поискового продвижения, автоматизация процессов, чек-листы, подробные отчеты.
Обеспечиваем безопасность сайта
5. Запрещаем загрузку картинок с вашего сайта
Существуют технологии, при которых сторонние сайты используют контент, в том числе изображения, загружая его прямо с вашего хостинга путем хотлинков (прямых ссылок на файлы). Это не только обидно и нарушает авторские права, но и создает ненужную дополнительную нагрузку на ваш сервер.
Осадите воришек при помощи этого кода:
6. Запрещаем доступ
Для нежелательных User Agents (ботов)
Список юзер-агентов можно дополнять, сокращать или создать свой. Перечень хороших и плохих ботов можно посмотреть здесь.
Частный случай такого запрета — запрет для поисковых роботов. Если вас почему-то не устраивает правило в robots.txt, можно запретить доступ, например, роботу Google при помощи таких директив:
Для всех, кроме указанных IP
Не забываем заменить «https://mysite.com» на адрес вашего сайта и вписать IP-адреса вместо IP1, IP2 и т.д.
Для определенных IP-адресов
Для подсети
Вписываем маску сети в строку после «deny from».
Спамные IP-адреса можно вычислить в логах сервера или с помощью сервисов статистики. В административной панели WordPress отображаются IP-адреса комментаторов:
К определенному файлу
Вписываем название файла вместо «myfile.html» в примере. Пользователю будет показана ошибка 403 — «доступ запрещен».
Для сайтов на WordPress важно ограничить доступ к файлу wp-config.php, т.к. в нем содержится информация о базе данных:
Для пользователей, пришедших с определенного сайта
Вы можете заблокировать посетителей с нежелательных ресурсов (например, со взрослым или шокирующим контентом).
7. Защищаем доступ к определенному файлу или папке
Защита паролем файла
Защита паролем папки
8. Запрещаем выполнение вредоносных скриптов
Следующая группа директив защищает сайт от так называемых «скриптовых инъекций» — инструмента хакерских атак:
Все попытки причинить вред вашему ресурсу будут перенаправлены на страницу ошибки 403 «доступ запрещен».
9. Защищаем сайт от DOS-атак
Один из способов защиты — ограничить максимально допустимый размер запроса (ограничение отсутствует по умолчанию).
В примере указан размер 10 Мбайт. Если вы хотите запретить загрузку файлов, пропишите число меньше 1 Мбайт (1048576 байт).
Также можно изучить возможности директив LimitRequestFields, LimitRequestFieldSize и LimitRequestLine в официальной документации.
Настраиваем отображение сайта
10. Заменяем индексный файл
Индексный файл — тот, что открывается по умолчанию при обращении к определенному каталогу. Обычно они называются: index.html, index.htm, index.php, index.phtml, index.shtml, default.htm, default.html.
Вот как это выглядит в структуре каталога:
Вместо «hello.html» вписывайте адрес желаемого файла.
Можно задать последовательность файлов, которые будут открываться в указанном порядке, если один из них будет недоступен:
11. Добавляем или убираем html в конце URL
Сохранять или убирать расширение файлов в URL — дело вкуса каждого оптимизатора. Достоверных исследований влияния расширений в адресах на ранжирование ресурса нет, но каждый вебмастер имеет свое мнение по этому поводу.
Этими же директивами можно добавить/убрать расширение php.
12. Настраиваем кодировку
Чтобы избежать ошибок в отображении ресурса браузером, нужно сообщить ему, в какой кодировке создан сайт. Самые популярные:
Чаще всего используют UTF-8 и Windows-1251.
Пример директивы, которая задает для файла кодировку UTF-8:
А такая команда означает, что все загружаемые на сервер файлы будут преобразованы в Windows-1251:
В примерах приведены разные кодировки, но в рамках одного сайта кодировки в этих директивах должны совпадать.
13. Создаем кастомные страницы ошибок
Перед тем, как прописывать директивы, создайте в корне сайта папку error и разместите туда соответствующие файлы для страниц ошибок.
Зачем это нужно? Например, чтобы не потерять пользователя на странице 404, а дать ему возможность перейти в другие разделы сайта:
Оптимизируем работу сайта
14. Сжимаем компоненты сайта при помощи mod_gzip или mod_deflate
Синтаксис модуля Gzip более гибкий и он умеет работать с масками:
В mod_deflate вы перечисляете типы файлов, которые нужно сжать:
15. Усиливаем кэширование
Этот комплекс команд поможет быстрой загрузке сайта для тех посетителей, которые уже на нем были. Браузер не будет заново скачивать картинки и скрипты с сервера, а использует данные из кэша.
В примере срок жизни кэша ограничен одной неделей («1 week»), вы можете указать свой срок в месяцах (month), годах (year), часах (hours) и т.д.
Другой вариант кода:
Для кэширования доступны следующие типы файлов:
Еще несколько возможностей
16. Управляем настройками php
Этот комплекс настроек выполняют программисты, если нет доступа к файлу php.ini. Остановимся на выражениях php_value, которые отвечают за объем загружаемых на сайт данных и время обработки скриптов, т.к. это напрямую влияет на производительность.
В строке «upload_max_filesize» указываете максимальный размер загружаемых файлов в мегабайтах, «post_max_size» означает максимальный объем постинга, «max_execution_time» указывает время в секундах на обработку скриптов.
17. Боремся со спам-комментариями на WordPress
Вместо «mysite.com» впишите адрес вашего сайта.
18. Устанавливаем e-mail для администратора сервера
19. Предупреждаем о недоступности сайта
IP-адрес в примере (12\.345\.678\.90) замените на свой, в последней строке укажите адрес страницы вашего ресурса с информацией о характере и сроках завершения работ.
Попытка номер раз создать почти идеальный htaccess
.htaccess — наш герой
Профессионалы знают, что такое htaccess.
Тем кто собираются уйти с народ.ру на php-хостинг только предстоит узнать, что это такое.
Те кто только что установил свои первые jooml’у или wordpress срочно должны узнать о нашем герое — htaccess
Представьте, что вы купили себе хостинг и кажется, почти обрели счастье. Но однажды (а может быть дважды, а может и трижды) ваш сайт перестает отвечать на запросы. Начинает медленно грузиться и вообще вести себя странно. А виртуальный хостинг это такая хитрая штука, что помимо вашего сайта на этом сервере находится ещё два десятка других сайтов. Все они разные по мощности, организованности и трафику. И когда ваш сосед по случайности, а может и умыслу запускает на своем хостинге сложные или избыточные в алгоритмах скрипты, это отзывается и на вас.
Или другой пример. Скажем ваш ресурс начинает набирать популярность, но переезжать на выделенный сервер ещё рано, а мощностей VPS уже не хватает. Вас очень может выручить htaccess.
А ещё htaccess может решить некоторые вопросы с безопасностью вашего сайта.
1. Первой строкой задаем основные опции:
Использовать опции очень удобно, когда у вас нет доступа к конфигурированию Апача или нужны разные настройки Апача для разных сайтов на одном сервере.
Скажем, у вас есть вот такой путь /site/folder_one/subfolder/other/
В файле /site/.htaccess вы указываете:
В файле /site/folder_one/.htaccess указываете:
В файле /site/folder_one/subfolder/.htaccess указываете:
2. Немного SEO (куда же без него)
В этой части файла мы указали две склейки: мы склеили ваш_сайт и www.ваш_сайт Даже если пользователь наберет ваш сайт без WWW его перебросить 301 редериктом на www.ваш_сайт.
А также мы избавились /index.php в строке запроса. Если пользователь наберет www.ваш_сайт/index.php его перебросит (снова 301 редериктом) на www.ваш_сайт.
Теперь поисковики не будут путаться между www и не будут дублировать главную страницу в результатах индексирования вашего сайта. Гуглим СЕО склейки домена, если не понимаете зачем это нужно.
3. Кто в папке главный?
Если у вас папке есть файлы index.html и index.php (не знаю, зачем и кому такое было нужно, но не раз видел такое) то как указать серверу кто их них более индексный?
А ещё можно там указать скажем roosso.php и тогда набрав в строке запроса адрес сайт.бла/бла/бла/ вы увидете не index, а roosso
Первая строчка устанавливает часовой пояс. Например в Apache 2.22.22 был баг связанный с этой опцией. Функции времени в php не работали, пока не установишь часовой пояс.
Вторая строка это подпись сервера. Вы их не раз видели на всяких системных страницах типа 500ой ошибки или 403ей. Обычно там какая-нибудь техническая информация и почта вебмастера. Я предпочитаю даже в таких мелочах скрывать данные о софте на сервере. Коллеги параноики меня поддержат.
Угадайте, что делает третья строка?
5. Когда нет доступа к php.ini
Первая строчка разрешить загружать файлы размером до 32 Мегабайт. По умолчанию в php обычно это значение 8 или 16 мегабайт.
Второй строкой разрешаем постинг объемом до 10 мегабайт. По умолчанию это значение обычно 2 Мегабайта.
Третья строка устанавливает кодировку по используемую вашими скриптами. По своей сути она дублирует строку: «AddDefaultCharset UTF-8». Но я чаще прибегаю к установке кодировки именно через php.
Четвертой строкой изменяем лимит времени выделенный на выполнение скрипта. По умолчанию он обычно равен 30 секундам. Но иногда для выполнения каких нибудь сложных обработок требуется больше времени.
6. Типы файлов. Ловкость рук и ни какого мошенничества.
В моей практике случалось пару раз, что после какого либо обновления провайдером софта, слетали типы файлов. Хотя такое редко. За 10 лет, всего два случая. Но иногда мне нужно было заставить html работать как php. А иногда требуется научить апач различать типы файлов, которые ему неизвестно. (Как оказалось Апачу вообще мало что известно из редких типов файлов.) В такой ситуации нас спасет следующий код:
Первая строчка позволит нашим php файлам иметь расширение html, но выполняться как php. Полезно бывает во многих случаях. А в старые добрые когда поисковики индексировали ЧПУ лучше, такая строчка всегда приходила на выручку.
Мы можем переназначить, добавить или подменить любые типы файлов под удобные нам разрешения.
Кстати, вы можете легко написать к примеру вот такую строку:
и создаю в корне своего сайта файл alex.roosso внутри обычный php код. Это вроде как страница обо мне любимом. И в адресной строке она будет выглядеть как www.black-web.ru/alex.roosso (ссылка рабочая, можете посмотреть что это так).
Второй строкой указано, какие расширения файлов должны выполняться как cgi скрипты.
Третья, четвертая и пятая строки, на всякий случай уточняют мим-тип файлов с разрешением css, js, xml. Не путайте с присвоением заголовка в ответе сервера на запрос, как это сделано в первых двух строках.
Шестая строчка это участка, нужна если на вашем сайте есть скачиваемый для пользователей контент. Если добавить эту строку, то при обращении к данным файлам им будет предлагаться скачать их на компьютер, а не как это сейчас в современным браузерах куча плагинов, которые даже word открывают в браузере.
Седьмую строку я закомментировал. Это строчка в принудительно-добровольном порядке, будет все файлы с вашего сервера запустить как php. Её лучше использовать лишь в отдельных папках, при необходимости.
7. Знают взрослые и дети, что архивы меньше весят…
Полезно, когда ваши страницы загружаются быстрее. Поэтому люди и придумали архивировать файлы. А потом они ещё подумали и решили, что архивировать можно и страницы на сайтах и картинки. Причем делать это незаметно для пользователя, но существенно снижать трафик и ускорять загрузку страниц. Волшебные слова прозвучали, теперь обсудим, как это можно сделать.
Как видите мы должны перечислить mime type файлов, которые следует подвергать сжатию. Сюда можно добавить и видео и картинки, но толку это даст мало. Потому что jpeg или gif уже сами по себе являются сжатыми форматами. Также как avi или flv. Вы фактически нечего не выиграете указав их.
Второй менее популярный модуль это mod_gzip, Чтобы включить сжатие с его помощью добавьте вот такие строчки:
Данный модуль умеет работать с масками, что несомненно большой плюс. Да и синтаксис у него куда более гибкий чем у предыдущего. Но используют его реже. А по сжатию я даже не берусь судить, который из модулей лучше. Я сильной разницы не заметил при тестах.
8. А ещё быстрее можно?
Можно. Если применить кеширование страниц. У кеширования есть и плюсы и минусы, поэтому подходить к этому вопросу надо подготовившись. Для динамически обновляющегося сайт каждый 2-3 минуты, например популярного форума, нужно учесть, что пользователь должен видеть актуальную информацию. Но у любого сайт есть контент, который более или менее статичен. Например те же картинки, или файлы стилей. Поэтому нам потребуется по разному использовать кеширование различного содержимого на сайте. В html разметки мы всегда можем использовать meta теги. И через php мы может устанавливать заголовки ответа сервера. Остается вопрос, как быть с css, js, image и т.д. и т.п.
Помочь нам в этом могут два модуля: mod_headers и mod_expires которые могут установить заголовки в ответ сервера и подсказать вашему браузеру, что и как нужно кешировать. Один из модулей обычно стоит у провайдера, но как и в случае с любым модулем, который не входит в стандартную сборку Апача, 100% гарантии никто вам не даст. Поэтому снова во избежание 500й ошибки указывает условия для каждого из модулей.
Вот такой синтаксис у mod_headers. Думаю по комментариям ясно что к чему.
В данной секции я отключил кеширование php файлов. Хотя по моему мнению небольшой временной интервал кеширования им не повредит. 5-30 секунд, это интервал времени, за который мало что меняется. А многие пользователи любят пользоваться клавишей back (вернуться назад). Чтобы не загружать им страницу второй раз, а подхватить её из кеша, разумный интервал кеширования все же уместен.
Во второй секции где идут условия для mod_expires я именно так и делаю — для php ставлю небольшой интервал кеширования.
9. Правила вежливого тона…
В процессе модернизации своего сайта, мы часто оставляем хвосты ввиде ссылок, которые ведут на страницы, которые мы удалили. Иногда такие ссылки идут с других сайтов или из поисковых систем. Чтобы не терять пользователей вежливым тоном считается иметь собственные страницы для различного типа ошибок. Включая даже ошибки сервера. Например стандартное сообщение о 500й ошибки очень скучное и мрачное, и вряд ли вызовет у пользователя желание посетить вашу страницу ещё раз. Но в htaccess есть приемы, которые могут сделать даже эту страницу приветливей.
Для 400-х ошибок можно использовать и динамические страницы на php. А вот для 500 лучше сделать на html и js. Это часть ошибок обычно связана с ошибками сервера (в большинстве случаев) и php или cgi как правило в такой ситуации не работают.
Если вам лень делать столько страниц устанавливайте страницей ошибок главную страницу своего сайта или карту сайта.
Все это вы делаете исключительно для людей. Поисковым роботам плевать на то есть у вас страницы ошибок или нет. Они видят ответ сервера с кодом ошибки и блокируют вашу страницу в поиск. Так что имейте ввиду, это не панацея. Это лишь вежливость к вашей аудитории и имидж вашего сайта.
В результате всех манипуляций у нас должен был получить файл следующего содержания:
Я старался не спешить в написании статьи и на это ушли почти сутки. Но все же где то я мог допустить ошибки в орфографии или пунктуации. Прошу не казнить, а миловать. А лучше писать в личку, чтобы я поправил ошибки.
… Для тех у кого всё получилось, идём на www.webpagetest.org мерять красоту до и после.
Andrey_Zentavr






