Правильний спосіб використання index.html


9

У мене досить багато питань, про які я хотів би почути вашу думку, тому сподіваюся, що мені вдасться пояснити це досить добре. Я також повинен зазначити, що я для початківців оснащений лише знаннями HTML та CSS, тому хоча я майже впевнений, що є просте рішення з використанням потужного PHP, воно мені не допоможе .

Скажімо, у мене є свій особистий блог за адресою example.com/blog.htmlі є посилання на кілька підблоків example.com/blog/math.htmlі example.com/blog/coding.htmlт. Д. Отже, моя коренева папка містить blog.htmlі blogпапку, сама blogпапка містить файли math.htmlі coding.html.

Перш за все, я дізнався (з Інструментів Google для веб-майстрів ), що для SEO та естетичних цілей добре об'єднати example.com.comта example.com/index.htmlдодати _rel="canonical"_атрибут до джерела index.html. Використовуючи пару інших хитрощів (наприклад, посилання на ../та ./), я позбувся негарних index.htmlявищ у своїх веб-адресах.

І тепер мені цікаво, чи можна цей трюк використовувати не тільки для кореневої папки, але й для будь-якої папки? Я маю на увазі, я б перемістив її blog.htmlв blogпапку, перейменував би її в index.htmlта додав rel="canonical"для об'єднання example.com/blog/index.htmlз example.com/blog/.
Цей трюк буде змінити адресу мого блогу з example.com/blog.htmlв example.com/blog/.

Не закінчено! У мене також виникають проблеми з роботом google, що індексує мої папки. Отже, коли я site:example.com/набираю пошук у Google, example.com/blog/серед інших результатів з'являється посилання на мою папку із неочищеними файлами, піктограмами тощо. Я припускаю , що є й інші способи , як це виправити, але я гадаю зміна вже згадувалися вище буде робити трюк теж - index.html в папці блог зберігає користувача від перегляду фактичного сирець змісту цієї папки, там буде відображатися тільки правильне посилання example.com/blog/в пошуку в Google і (я сподіваюся, що) _rel="canonical"_зробить друге, небажане посилання example.com/blog/index.htmlне відображатися в результатах пошуку.

Отже, мої запитання:

  1. Чи є гарною практикою мати index.htmlфайл у кожній підпапці чи він повинен бути лише у кореневій папці?
  2. Чи є недоліки чи проблеми, які можуть виникнути при використанні другого методу " індексувати в кожній папці "?
  3. Який із двох способів структурування веб-сайту, описаних вище, ви б віддали перевагу?

Для мого уточнення, чи бачать пошукові системи site.com/blog та site.com/blog/index.html як два різних файли? Якщо використовуються посилання з обома URL-адресами, чи є ймовірність, що ви розділите повноваження соку / сторінки авторизації між двома місцями?

Наскільки я знаю, пошукові системи (принаймні Google) DO бачать їх як два різних файли. Оскільки вони насправді можуть бути різними - два ланки можуть відрізнятися лише однією косою косою рисою. (Докладніше читайте тут .) І так, якщо ви використовуєте два різних посилання на одну сторінку, весь ранг сторінки розділений між цими двома посиланнями, і ваша сторінка фактично втрачає половину свого рангу. Ось чому я пропоную згадану каналізацію посилань для запобігання цих витоків.
Jeyekomon

Відповіді:


13

Причина , чому ми використовуємо index.htmlабо home.htmlабо derivitives їх, тому , що веб - сервер програмне забезпечення саме по собі виглядає на насправді для цього і служить йому. Наприклад:

Це INVALID: (www-каталог)

/var/www/
|_blog.html
|_blog/
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

Фактично це послужить сторінкою з переліком папок і файлів. (Не те, що ти хочеш). Ви можете спробувати цю структуру, але також зробити файл index.html поруч із blog.html. Зверніть увагу, як він не буде обслуговувати blog.html, якщо ви не вкажете http://www.site.com/blog.html). Саме тому http://www.google.com/відображається сторінка, не вказуючи їїhttp://www.google.com/index.html

Це VALID:

/var/www/
|_index.html (renamed blog.html to index.html)
|_blog/
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

Це послужить вашому blog.htmlфайлу як ДОМАШНЯ СТОРІНКА. (Не список усіх папок / файлів у цьому каталозі)

Програмне забезпечення веб-сервера має (у конфігурації) спеціалізований список імен файлів, які будуть подаватися як домашня сторінка або головна сторінка папки. (З мого досвіду, index.htmlмає пріоритет над index.php, тому якщо у вас є index.htmlі index.phpв папці, то index.html є те , що громадськість буде бачити) Звичайно , що все може бути змінено, і ви навіть можете встановити , blog.htmlщоб бути визнаним в якості "індекс".

Адресація вашого коментаря:

"Ця хитрість змінила б адресу мого блогу з www.xxx.com/blog.html на www.xxx.com/blog/."

Це можна зробити, перемістивши blog.htmlцілком в /blog/і перейменувавши його на index.html.

Вашою новою структурою буде:

/var/www/
|_blog/
  |_index.html (renamed from blog.html)
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

Це має слугувати правильним http://www.site.com/blog/відображенням вмісту вашого blog.html, який ми перейменували, щоб index.htmlпрограмне забезпечення могло встановити його як індекс вашого каталогу/blog/

Тепер ви також можете розмістити і index.htmlподати в корінь свого сайту, http://www.site.com/(index.html)щоб мати посилання на /blog/все, що завгодно.

Конкретні відповіді на ваші запитання в коротких висловлюваннях:

  1. Чи є гарною практикою розміщення файлу index.html у кожній підпапці чи він повинен бути лише у кореневій папці?

    Так, оскільки це заважає людям бачити, які файли є у ваших каталогах. Ви можете запобігти цьому за допомогою .htaccessфайлу, що міститьOptions -Indexes

  2. Чи є недоліки чи проблеми, які можуть виникнути при використанні другого методу "індексувати в кожній папці"?

    Жодного, що я можу придумати.

  3. Який із двох способів структурування веб-сайту, описаних вище, ви б віддали перевагу?

    Я зазвичай мають index.htmlабо index.phpфайл в кореневому каталозі, вкладені папки , засновані на категорії (наприклад, forumчи newsабо і loginт.д.) , а потім який - то індекс всередині кожного з них.


Дякую за таку вичерпну відповідь! Цей публічний доступ до моїх папок і те, що вони індексуються google, мене дуже злить, тому зараз, коли я знаю, що з трюком "індекс у кожній папці" немає жодних проблем, я зміню свій веб-сайт таким чином. Я просто сподіваюся, що трюк rel = "canonical" спрацює, і всі ці індекси не з'являться у пошуку Google ...: D
Jeyekomon

6

Технічним терміном для index.html є Каталог каталогів для Apache та Документ за замовчуванням для IIS. Інша цікава директива Apache - це Директива щодо опцій . Як зазначено в документації, коли Options Indexesвстановлено:

Якщо потрібна URL-адреса, яка відображає до каталогу, а в цьому каталозі немає DirectoryIndex (наприклад, index.html), mod_autoindex поверне форматизований список каталогу.

Коли я налаштовую веб-сайт, який не використовує систему управління вмістом, моїм кращим налаштуванням є наявність однієї сторінки вмісту в каталозі. Ця сторінка є індексом каталогу (документ за замовчуванням) для каталогу. Усі посилання на сайті посилаються лише на каталог і закінчуються кінцевою косою рисою (наприклад, http://example.com/blog/замість http://example.com/blog/index.htmlабо ./blog/замість ./blog/index.html). Косою косою рисою важливо уникати того, що зазвичай називають ввічливим перенаправленням . (Якщо пропускну косу рису пропущено, все все вирішується правильно, але кількість запитів HTTP і, таким чином, збільшується пропускна здатність.)

Моя основна мотивація до вищевказаної методики є двоякою. По-перше, це полегшує перемикання технології, що використовується на веб-сайті. Наприклад, я можу змінити сторінку з index.html на index.php, не порушуючи жодних посилань чи списків пошукових систем. По-друге, розширення файлу змістової сторінки "шум"; видалення розширення файлу з URL-адреси призводить до коротших та, сподіваємось, більш читаних URL-адрес.

Що стосується інших типів файлів:

  • Усі файли CSS містяться в каталозі css в корені веб-сайту.
  • Усі файли зображень перебувають у каталозі зображень або його підкаталозі у корені веб-сайту.
  • Усі файли JavaScript перебувають у каталозі скриптів у корені веб-сайту.
  • Усі флеш-файли та інші файли фільмів містяться у відео-каталозі чи його підкаталозі у корені веб-сайту.

На сервері Apache я відключаю Options Indexesвказані вище каталоги. Як на серверах Apache, так і на IIS, я не вказую індекс каталогів (документ за замовчуванням) для вищезазначених каталогів. Таким чином, запит будь-якого з каталогів призводить до помилки HTTP 403.


Через два обмеження обмеження посилань я не міг включити у свою відповідь посилання на Каталог каталогів та Документ за замовчуванням , тому ось вони.
Райан Пречел
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.