Должен ли я использовать расширение файла или нет?


Я всегда задавался этим вопросом и никогда не находил хорошего решения.

Но этот вопрос напомнил мне об этом.

Когда у меня есть URL-адрес на моем веб-сайте, он может быть отображен и доступен любым из следующих способов:

http://www.somesite.com/subdirectory
http://www.somesite.com/subdirectory/
http://www.somesite.com/subdirectory/index.htm
http://www.somesite.com/subdirectory/index.html
http://www.somesite.com/subdirectory/index.php
http://www.somesite.com/subdirectory/index.asp
http://www.somesite.com/subdirectory/some-relevant-keywords
http://www.somesite.com/subdirectory/some-relevant-keywords.htm
http://www.somesite.com/subdirectory/index.php?page=some-relevant-keywords
http://www.somesite.com/subdirectory/?page=some-relevant-keywords
http://www.somesite.com/subdirectory/?page=some-relevant-keywords&even=more-keywords

И т.д...

Теперь я могу понять преимущества добавления ключевых слов в URL-адрес. Даже в самом простом руководстве по SEO будет упомянуто, чтобы сделать именно это. ...но ради здравомыслия, ясности, удобства чтения, удобства использования и так далее вкл., включая соответствие веб-требованиям...

Это предпочтительный иметь расширение файла или нет?

Действительно, в глубине души моя логика подсказывает мне: да, так и должно быть. Причина в том, что это восходит к тем временам прошлого, когда Интернет был в основном USENET, FIDONET, FTP и GOPHER.

Смотрите, если URL-адрес не имеет имени файла, то обычно он считается каталогом . Вот где index.htm возникло, потому что это по умолчанию перечисляет каталог, если файл индекса не найден. Однако достаточно скоро веб-программисты начали переопределять это и использовать index.htm фактически обслуживать содержимое этого веб-каталога в качестве страницы . Основное отличие заключалось в том, что был добавлен язык разметки, и он был проанализирован в браузере. С помощью этого языка разметки тег Content-Type:text/html; в заголовке ответа стал индикатором того, каким типом файла он был для любого файла. HTML, похоже, является единственным "типом файла", который просто не имеет последовательного имени расширения, за исключением случаев, когда они сохраняются.

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

Не говоря уже о межплатформенных войнах за имена файлов.. для Windows требуется расширение из 3 или менее цифр, а для unix/mac может быть больше. Так должно ли это быть .HTM или .HTML или NONE, и пусть платформа решает?

Итак, по сути, я угадайте, что я пытаюсь понять, это за пределами SEO и больше касается эстетики и соответствия веб-требованиям.

 27
Author: Community, 2010-09-17

7 answers

Используйте расширение ., где имеется более одного представления или где клиентское программное обеспечение абсолютно глупо и отказывается принимать только тип контента (QuickTime, RealPlayer, Outlook и т. Д. Я смотрю на вас):

  • http://www.somesite.com/subdirectory - это может быть ваша версия автоматического согласования, которая использует канонические МЕТА-теги для указания на фактическое представление

  • http://www.somesite.com/subdirectory/ - всегда стоит поддерживать конечные косые черты на любом URL-адресе, но использовать канонические МЕТА-теги (не перенаправляет, так как это ненужное замедление), чтобы указать правильный URL-адрес

  • http://www.somesite.com/subdirectory/index.htm и http://www.somesite.com/subdirectory/some-relevant-keywords.htm - ограничение на расширение в три символа не распространяется на HTTP (только на базовую файловую систему/ОС), поэтому клиент может сохранить это как index.html или a.a, если бы они захотели, все еще имея возможность получить к нему доступ

  • http://www.somesite.com/subdirectory/index.html - если вы обслуживаете версию .atom, .xml или аналогичную версию, то имеет смысл также соблюдать версию.html (и канонически ссылаться на нее с помощью тегов ССЫЛОК на версия с автоматическим согласованием) - используйте заголовки местоположения содержимого HTTP, чтобы указать на версию с автоматическим согласованием - помните, что вы также можете использовать многоязычный (.en, .es и т. Д.) Или мульти-кодировку (.utf8, .utf16 и т.Д...)

  • http://www.somesite.com/subdirectory/index.php и http://www.somesite.com/subdirectory/index.asp - если вы не обслуживаете исходный код, то это не имеет смысла поддерживать

  • http://www.somesite.com/subdirectory/some-relevant-keywords - SEO - это постоянно меняющееся искусство, и если это работает для вас, то отлично

  • http://www.somesite.com/subdirectory/index.php?page=some-relevant-keywords, http://www.somesite.com/subdirectory/?page=some-relevant-keywords и http://www.somesite.com/subdirectory/?page=some-relevant-keywords&even=more-keywords - если есть бесконечное количество способов манипулировать контентом, тогда это здорово - но обычно страницы заслуживают своего собственного URL, а не строки запроса, и таких URL-адресов следует избегать (попробуйте заставить кого-нибудь неграмотного на компьютере ввести один из них в)

 20
Author: Metalshark, 2010-09-30 05:13:35

Я бы сказал не включайте расширение файла, если используемое вами программное обеспечение позволяет его опустить. Итак, из вашего списка примеров я бы предпочел:

http://www.somesite.com/subdirectory/some-relevant-keywords

Браузерам все равно, является ли что-то каталогом или нет на сайте, или это HTML-файл, файл .asp или что-то еще - они просто делают HTTP-запрос и получают HTTP-ответ. Поэтому, если расширение является излишним, отбросьте его.

Это также дает дополнительное преимущество, делая ваши URL-адреса более краткими (и легче читать по телефону - "пример продуктов с косой чертой dot com" звучит намного приятнее, чем "пример продуктов с косой чертой dot com"), и упрощает переключение технологий в будущем (поскольку изменение URL-адреса не потребуется).

 13
Author: Tim Fountain, 2010-09-17 09:33:08

Классные URI не меняются. (Перейдите в раздел под названием "Так что же мне делать? Проектирование URI")

 12
Author: John Conde, 2010-09-17 12:12:20

Предпочтительно ли иметь расширение файла или нет?

В RFC нет ничего, что требовало бы наличия расширений файлов, и нет ничего, что требовало бы, чтобы вы их исключали. Это выбор, который ты делаешь.

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

Тем не менее, большинство браузеров сегодня действительно делают это полагайтесь на комбинацию типа MIME, расширения и двоичного "отпечатка пальца" первых байтов для определения типа содержимого. Иногда это может давать удивительные результаты , и поэтому важно, чтобы мы, веб-мастера, устанавливали правильные заголовки (и, возможно, отключали отслеживание типов контента , если мы на 101% уверены, что наши заголовки правильные).

Существует одна ситуация, когда расширения файлов полезны: , если конечный пользователь сохраняет контент с вашего сайта на свой локальный компьютер для последующего использования. Теоретически "умный" браузер должен гарантировать, что сохраненный контент работает для локального типа компьютера; но на практике вы можете помочь всем, предоставляя контент с расширениями отраслевого стандарта, такими как .jpg,.mp4,.css и т. Д. По моему опыту, все браузеры правильно обрабатывают тип HTML. Вам не нужно самостоятельно добавлять расширение .htm/.html в HTML, браузер правильно обработает этот конкретный тип контента.

Безопасность: Можно утверждать, что существует безопасность преимущество в том, чтобы скрыть, какую платформу вы используете (.php/.asp и т.д.). Это правда. На практике я думаю, что любой хороший хакер сразу же обнаружит это, поэтому я не думаю, что скрывать эти расширения только для обеспечения безопасности стоит усилий.

Особое внимание: Если вы планируете использовать CDN в будущем, и ваш CDN относится к типу "push" (содержимое загружается в CDN заранее через SFTP), вам может потребоваться сохранить расширения файлов. Большинство сторонних систем рассматривают расширения файлов для узнайте, с помощью какого типа MIME будет предоставляться контент.

Моим личным выбором стал:

  • Когда HTML генерируется динамически моим веб-приложением, я не добавляю "поддельное" расширение .html, чтобы имитировать структуру каталогов и файлов, которых на самом деле нет. Я нормализую URL-адреса и стандартизирую формат URL, используемый в целях SEO. Лично я предпочитаю иметь завершающую косую черту на последнем листе URL-адреса, т.Е. http://example.org/first/second/, но это вопрос вкус.

  • Когда мы на самом деле говорим о реальных файлах, которые где-то загружены на жесткий диск, я сохраняю "обычное" расширение файла для этого типа. Таким образом, .css /.js /.exe/.mp4 и т.д. используются для такого рода контента.

 8
Author: Jesper M, 2010-09-17 13:56:01

Я провел небольшой неформальный эксперимент, и то, что я обнаружил, удивило меня, но имеет некоторый смысл.

С точки зрения доставки контента пользователю, а также очистки экрана, тип контента управляет днем.

Однако наличие или отсутствие расширения, а также то, что это за расширение, похоже, влияет на посещения поисковых систем.

Когда я вообще опустил какое-либо расширение, я получил относительно мало обращений - как если бы URL-адрес был местоположением или динамическим контентом и поэтому не стоит сильно индексировать.

Когда я изменил те же ссылки, чтобы использовать расширение .xml, потому что страницы были фактически сгенерированы XSLT (на стороне сервера), индексация фактически снизилась еще больше - возможно, потому, что он думал, что это просто данные или результат какого-то программного запроса.

Когда я изменил те же ссылки на использование .html, поисковые системы пришли в бешенство от сайта.

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

Я хотел бы думать, что поисковые системы были немного умнее или немного менее предвзятыми, но я наблюдал, как это происходит с моими страницами.

 2
Author: Walt Stoneburner, 2010-09-17 17:51:25

Нет, вы не должны использовать расширение файла для обычных типов страниц, если только оно вам абсолютно не нужно по техническим причинам. Как это улучшает пользовательский интерфейс? Это больше для того, чтобы печатать, но это не говорит им ничего полезного. Что они смогут сделать, зная, что ваш сайт - PHP, ASP и т. Д.? URL-адрес проще, чище, удобнее в использовании и запоминается без расширения файла.

Видите ли, если URL-адрес не имеет имени файла, то обычно он считается каталог.

Не думаю, что я согласен. Как правило, URL-адрес является каталогом только в том случае, если он имеет завершающую косую черту. Без завершающей косой черты это считается файлом.

 2
Author: Virtuosi Media, 2010-09-17 19:07:02

Вам следует добавлять расширение файла только в том случае, если содержимое URI на самом деле является файлом. Но даже тогда вы можете отказаться от него, если есть только одно его представление (JPG, PDF,...).

Если существует несколько представлений, HTTP-способом было бы согласовать формат с помощью заголовка Accept. Но если вы хотите, чтобы ваши пользователи имели право голоса в этом, вы, вероятно, захотите иметь расширение, чтобы они могли выбрать, какое представление они хотят (JPG, PNG,...), запросив один или другой URI.

 0
Author: DanMan, 2013-02-23 19:48:56