Организация файлов веб-сайта

Я хочу начать создавать свой сайт, но у меня есть несколько вопросов.

  • http://website.com/directory/webpage - на этом веб-сайте он не отображает расширение .php или .HTML в конце. Как достичь этого?

  • Если у меня есть несколько страниц, например, contact.html, aboutme.html и т. д. Должен ли я просто создавать отдельные html-файлы или мне нужно что-то делать в одном файле index.php и использовать PHP или JavaScript для обработки содержимого в соответствии с к URL-адресу. Что является более подходящим рабочим процессом?

5 голосов | спросил Joe Slater 6 MarpmWed, 06 Mar 2013 17:35:57 +04002013-03-06T17:35:57+04:0005 2013, 17:35:57

3 ответа


4

Существует несколько способов обслуживания файлов без расширения.


Одним из самых простых является использование опции Multiviews в вашем .htaccess. Эта опция позволяет получить доступ к документу /webpage.html через /webpage URI. Затем вы можете использовать правило перезаписи, чтобы убедиться, что версия с .html перенаправляется на версию без расширения. Вот .htaccess:

Options +MultiViews
RewriteEngine On
RewriteRule (.*)\.html $1 [R=301,L]

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

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /thescript.php?s=$1 [L]

Многие системы управления контентом (CMS), такие как Wordpress , обозначают ваши URL-адреса для вас и имеют настройки для стиля URL, который вы хотите использовать. В Wordpress это можно контролировать в разделе «Настройка» -> «Permalink», где есть несколько вариантов, ни один из которых не использует расширение .html. Я также использую пользовательский плагин permalinks , который позволяет мне специально выбрать URL-адрес, который Я хочу для каждой страницы.


Что касается вашего вопроса о количестве страниц на вашем сайте, то распространенной практикой является наличие отдельных страниц для contact.html, about.html, privacy.html и faq.html. Я мог видеть слияние информации о контакте с информацией о нас, но я бы не стал ставить все на одну страницу, она становится слишком длинной.

ответил Stephen Ostermiller 6 MarpmWed, 06 Mar 2013 19:11:01 +04002013-03-06T19:11:01+04:0007 2013, 19:11:01
3

Это не очень хорошая идея с точки зрения SEO, чтобы обслуживать разные контенты с помощью Javascript, поскольку веб-искатель, вероятно, либо видит пустую страницу, либо всегда содержимое по умолчанию. В любом случае ваш контент не будет полностью проиндексирован.

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

Отправляемая часть без вашего ответа уже ответила двумя хорошими способами. Существуют и другие варианты в зависимости от того, как организована ваша сторона, но обычно вы используете RewriteEngine от Apache.

ответил Itai 6 MarpmWed, 06 Mar 2013 19:44:28 +04002013-03-06T19:44:28+04:0007 2013, 19:44:28
0

Простейшим способом достижения URL-адресов без .html в них часто является создание каталога с именем webpage и в нем есть файл с именем index.html. Фактически файл

http://website.com/directory/webpage/index.html

, но вы можете ссылаться на него как

http://website.com/directory/webpage

Apache (и большинство других систем) имеют параметр конфигурации, для которого имена файлов должны рассматриваться как индексы для этой цели.

ответил Iain Hallam 11 MaramMon, 11 Mar 2013 02:55:39 +04002013-03-11T02:55:39+04:0002 2013, 02:55:39

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132