htmlbook.ru - Для тех, кто делает сайты
Статьи Книги Шаг за шагом Рецепты Форум Графика для Web
Главная страница > Статьи > Основы HTML > Структура файлов

Структура файлов

Влад Мержевич

Текстовая версия   Добавить комментарий

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

Для простоты будем предполагать, что мы имеем дело с сайтом, который сделан с помощью html-файлов, без всякого веб-программирования.

Прежде чем создавать в корне сайта папки и файлы, необходимо разработать структуру сайта — какие разделы и подразделы будут присутствовать, как они будут называться. Для примера приведем схему сайта посвященного оптимизации графики.

Каждый раздел представляет собой один HTML-документ, который следует создать и дать ему имя. Имена файлов лучше называть латинскими символами без пробелов в нижнем регистре. Такой подход гарантирует универсальность и работоспособность на разных платформах.

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

Какой файл загружать первым

Обычно просмотр сайта начинается с главной страницы. При обилии в корне сайта различных файлов, как веб-сервер узнает, что ему загружать автоматически? Конечно, если путь к файлу указан напрямую, никаких вопросов не возникает. Но в большинстве случаев, адрес сайта указывается коротко, без лишних файлов на конце. Вот тогда читаются настройки сервера, и определяется, файл с каким именем следует показать и есть ли он в наличии. Как правило, такой файл имеет имена index.html, index.htm, default.htm, в общем, список можно продолжить. Чтобы не усложнять себе жизнь вычислением, какой же файл главнее, это можно установить самому, используя для этого файл .htaccess, размещая его в корне сайта. Данный файл является конфигурационным для популярного веб-сервера Apache и представляет собой обычный текстовый документ. В нем следует прописать такую строку.

DirectoryIndex index.html index.htm

Где через пробел указываются имена файлов, которые следует просматривать на предмет наличия и запускать автоматически. После этого, при указании пути к разным файлам и папками, в браузере будут открываться документы, как показано в таблице (указание протокола http:// для краткости опущено).

Путь Что запускается
www.mysite.ru www.mysite.ru/index.html
www.mysite.ru/16.html www.mysite.ru/16.html
www.mysite.ru/16/ www.mysite.ru/16/index.html
www.mysite.ru/1/6 www.mysite.ru/1/6/index.html

Как видно из таблицы, даже если путь к файлу указан не полностью, веб-сервер сам подставит недостающие значения. Этим можно воспользоваться, создавая ссылки на разные документы, на их работоспособность это не скажется.

Замечания

  • файл .htaccess пишется без всякого расширения с обязательной точкой в начале имени;
  • .htaccess может не работать на некоторых серверах;
  • неполные пути, как показано в таблице, работают только под управлением веб-сервера, на локальном компьютере этот фокус не пройдет;
  • если файл index.html отсутствует в указанной папке, браузер покажет список файлов, которые в ней содержатся.
  • Запрет доступа к папкам

    Чтобы запретить посетителям смотреть информацию в отдельных папках на сайте, что иногда бывает необходимо для ограничения доступа к служебной информации и повышения безопасности сайта, есть два основных способа. Первый — создать пустой файл index.html и поместить его в нужную папку. Как было указано выше, этот файл будет загружаться в первую очередь при выборе пути к папке. А раз он пустой, то и увидеть ничего лишнего не удастся. Второй способ — использование опять же файла .htaccess, который следует разместить в нужной папке. Не стоит удивляться, это универсальный файл и размещаться он может в любом количестве и в любом месте сайта.

    В нем надо написать следующую информацию.

    Options -Indexes

    Когда браузер открывает папку, в которой содержится такой файл .htaccess, посетитель увидит предупреждение об ошибке с номером 403, означающую, что доступ в данное место запрещен.

    Изображения

    Все изображения, применяемые на веб-страницах, принято хранить в папке с именем images или img. Такая традиция систематизирует материал, разбивая его на блоки. Получается, что для картинок предназначено одно место хранения, для скриптов — другое, для стилей — третье.

    Отслеживание ошибок

    При правильном создании всех ссылок никогда не возникают, так называемые, «битые ссылки», когда ссылка ведет на файл, путь к которому или его имя указано неверно. Однако данная ошибка с номером 404 может возникнуть и просто, когда неправильно пишут адрес страницы. В этом случае, хорошо бы подсунуть пользователю сообщение об ошибке, чтобы не беспокоился и верил, что все можно поправить. Для этого создают отдельную веб-страницу, которая будет показана как раз при возникновении подобной ошибки. Связать воедино процесс возникновения ошибки и наш файл можно опять же с помощью корневого .htaccess. В него добавляется следующая строка.

    ErrorDocument 404 /err404.html

    Имя файла называется err404.html и размещается в корне сайта, слэш (символ /) перед именем файла пишется обязательно.

    Файловая структура сайта

    Вернемся теперь к сайту, файловую структуру которого следует создать. Здесь существует два различных подхода. В первом случае, каждому разделу соответствует html-документ, находящийся в корне сайта. Путь к нему будет выглядеть как www.mysite.ru/optimize.html. Альтернативный вариант — создание папок, которые будут соответствовать определенным разделам. В каждой папке размещается файл index.html. Поскольку этот файл указывать в адресе не обязательно, то путь будет выглядеть как www.mysite.ru/optimize. На рис. 1 и рис. 2 показаны два набора организации файлов на сайте.

    Рис. 1. Организация документов по файлам Рис. 2. Организация файлов по каталогам
    Рис. 1. Организация документов по файлам Рис. 2. Организация файлов по каталогам

    Какую структуру предпочесть зависит лишь от воли создателей сайта.

    Дополнительные файлы

    На любом сайте не обойтись и без дополнительных файлов, обычно размещаемых в корне сайта. Сюда входят файлы, предназначенные для выполнения определенных задач и имеющих обязательное имя, а также файлы, имя которых определяется разработчиками.

    Обязательные имена

    index.html — название главной страницы, а также веб-страниц размещаемых в папках, которые должны открываться при их указании в адресе. Это имя, как уже упоминалось, может меняться в зависимости от типа веб-сервера и его настроек. Но обычно оно именно такое.

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

    robots.txt — файл, предназначенный для поисковых систем. При индексировании сайта, в первую очередь ищется он. Пример запрета для всех поисковых систем посещать папки сайта cgi-bin и images.

    User-agent: *
    Disallow: /cgi-bin/
    Disallow: /images/

    favicon.ico — иконка сайта, она появляется возле адреса сайта при занесении его в раздел «Избранное» браузера. Это рисунок размером 16 на 16 пикселов формата ICO.

    Необязательные имена

    Таблица стилей — ни один сайт уже не обходится без стилей, обычно размещаемых в отдельном файле. Такое размещение дает несколько преимуществ — легко изменять вид элементов на всех страницах, меняя параметры лишь в одном месте, файл кэшируется и загружается быстрее, уменьшается общий объем всех документов. Файл со стилем обычно имеет расширение css.

    Заключение

    Хотя имена некоторых служебных файлов зависят от настроек сервера и могут меняться от сайта к сайту, приведенные принципы характерны для большинства из них. Для динамических сайтов, содержание которых формируется с помощью программы, так называемого «движка», структура будет несколько отличаться от приведенной. Однако и в этом случае, служебные файлы, такие как таблицы стилей, .htaccess, favicon.ico, robots.txt останутся на месте.

    Статья опубликована: 27.06.2005 Последнее обновление: 27.06.2005

    Прежде, чем писать комментарий к статье, примите во внимание следующие моменты.

    1. Не задавайте вопросы в комментариях, для этой цели предназначен форум, где вы получите нужную помощь.
    2. Удаляются любые комментарии, которые:
      • включают множество ошибок;
      • написаны безграмотно;
      • не имеют отношения к данной статье;
      • не содержат никакой полезной информации для посетителей.
    3. Для выделения отдельных слов используйте следующие команды: [b]жирный[/b], [i]курсив[/i], [color=цвет]цветной текст[/color], [tag]тег[/tag], [var]параметр[/var], [code]пример[/code].
    4. Потренироваться в написании комментариев вы можете в песочнице.

    Комментарии к статье

    Женя

    19.05.2006

    Покажите тег вставки видео

    Влад Мержевич

    19.05.2006

    Женя, вопрос не по теме статьи, смотри тег EMBED.

    Анжела

    27.05.2006

    я делаю сайт со структурой как на рис.2
    структура такова:

    index.html
    video/index.html
    foto/index.html
    book/index.html

    Как мне прописать ссылки с главной страницы на дочернюю не упоминая адрес самого сайта?
    и с дочерних на дочерние...

    Влад Мержевич

    29.05.2006

    2 Анжела
    С главной на дочернюю:
    <a href="video/">...</a>
    или
    <a href="/video/">...</a>

    С дочерней на дочернюю:
    <a href="../foto/">...</a>
    или
    <a href="/foto/">...</a>

    Сергей

    15.05.2007

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

    Влад Мержевич

    16.05.2007

    Создайте файл в Far-е.

    Борис

    26.05.2007

    Или скопируйте уже существующий, например из скачанного скрипта.

    Наталья

    22.06.2007

    А не подскажете ли - где поподробнее узнать о динамических сайтах и "движке"?

    Влад Мержевич

    22.06.2007

    Здесь можете почитать, что такое движок.
    http://www.pc-info.in.ua/content/view/1789/343/

    А здесь посмотреть обзор CMS.
    http://cmsmatrix.org/matrix

    Наталья

    25.06.2007

    спасибо)

    Птааг

    27.06.2007

    Подскажите пожалуйста, у меня на основном домене (abc.com) запускается index.php, а на поддомене (def.abc.com) должен запускаться index.html, я прописываю в .htaccess строку вида -

    DirectoryIndex index.html index.php

    abc.com как и положено запускает php, а вот при обращении к def.abc.com выда?т ошибку -

    The requested URL /home/abc/domains/abc.com/public_html/index.php was not found on this server.

    никак не могу понять где грабли smile

    заранее спасибо за ответ.

    Влад Мержевич

    27.06.2007

    Файл .htaccess надо создать в корне поддомена и прописать параметры для него. Действие .htaccess не распространяется на поддомены.

    KriFFek

    02.10.2007

    Извините, а можно ли на narod.ru созать файл .htaccess? Если да, то как?

    Влад Мержевич

    15.10.2007

    Создать конечно можно, но толку на narod.ru от этого файла никакого не будет.

    Джим

    23.01.2008

    хмммм... а подскажите мне ... в каком месте файл .htaccess является конфигом для Апача? как то я до этого считал что конфиг для него это httpd.conf?

    Джим

    23.01.2008

    предупреждая недоумение цитирую аффтара "используя для этого файл .htaccess, размещая его в корне сайта. Данный файл является конфигурационным для популярного веб-сервера Apache"

    Кержак

    29.01.2008

    Джим пишет:
    [б]предупреждая недоумение цитирую аффтара "используя для этого файл .htaccess, размещая его в корне сайта. Данный файл является конфигурационным для популярного веб-сервера Apache"[/b]
    Если уж кому - то известно название конфигурационного файла для Индейца, то уж предназначение конфигурационного файла .htaccess ему доподлинно известно, но не только лень, глупость она тоже раньше нас родилась. Ну и предупреждая недоумение действительно аффтара ( коим Блад Мержевич по определению быть не может, он Автор) коротко скажу: оба файла конфигурационные, оба для Индейца, просто служат они для управления разными сторонами работы. Тем более что .htaccess может служить для управления отдельно взятой директорией.

    Влад Мержевич

    29.01.2008

    Все правильно, конфигурационный файл для Apache это httpd.conf. Но он не всегда доступен для прямого редактирования, поэтому часть настроек можно задавать через .htaccess. Так что в каком-то смысле и тот и другой файл является конфигурационным.

    Григорий

    13.02.2008

    А не подскажите,существует ли раздел в котором можно потренироваться в проэктировки сайта(так же как и в песочнице)

    Влад Мержевич

    19.02.2008

    Нет.

    Димчик

    16.03.2008

    Большое спасибо за эту статью.Она внесла ясность в некоторые не понятные вещи в моей голове.

    Евгений

    24.04.2008

    хммм... забавно... вписал в этот файл строчку DirectoryIndex index.html index.htm (и больше ничего), но сайт всеравно категорически не открывается...

    Евгений

    24.04.2008

    извиняюсь, файл .htaccess тут не причем... ошибка была в самой индексной странице...
    после исправления своей ошибки сайт (с прописаным в .htaccess DirectoryIndex index.html index.htm) открывается вполне нормально

    Евгений

    26.04.2008

    еще вопрос - как сделать так чтобы вместо странички, к примеру, new.html открывалась new ?

    Влад Мержевич

    13.05.2008

    Можно сделать перенаправление с одного файла на другой. Получится, что открываем один, а на самом деле - другой.

    Добавить комментарий

    Имя
    Комментарий

    Сохранить имя (используется cookie)

    Поиск по сайту

    Основы HTML
    Разделы

    Copyright 2002–2008 Влад Мержевич, по всем вопросам пишите по адресу: vlad@htmlbook.ru

    О сайте | Планы на будущее | Использование сайта | Борьба с ошибками | Технологии | Поддержать проект