web-dev-qa-db-fra.com

Organiser les fichiers du site Web

Je veux commencer à créer mon site web mais j'ai quelques questions.

  • http://website.com/directory/webpage - dans ce type de site Web, aucune extension .php ou .HTML n'est affichée à la fin. Comment y parvenir?

  • si j'ai plusieurs pages comme contact.html, aboutme.html, etc. Devrais-je simplement créer des fichiers html distincts, ou devrais-je faire quelque chose dans un seul fichier index.php et utiliser PHP ou JavaScript pour gérer le contenu en fonction à l'URL. Quel est le flux de travail le plus approprié?

5
Joe Slater

Il existe plusieurs façons de servir des fichiers sans extension.


L’un des plus faciles est d’utiliser l’option Multiviews dans votre .htaccess. Cette option permet d’accéder au document /webpage.html par l’intermédiaire de l’URI /webpage. Ensuite, vous pouvez utiliser une règle de réécriture pour vous assurer que la version avec .html est redirigée vers la version sans extension. Voici le .htaccess:

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

Une autre façon de procéder consiste à faire en sorte que l'ensemble de votre site soit géré par un script unique qui imprime la page correcte en fonction d'un paramètre, puis utilise .htaccess pour tout réécrire dans ce script. Voici le .htaccess pour cette approche.

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

De nombreux systèmes de gestion de contenu (CMS) tels que Wordpress nomment vos URL et définissent les paramètres de style d'URL que vous souhaitez utiliser. Dans Wordpress, cela peut être contrôlé sous "Setting" -> "Permalinks" où il y a plusieurs options, dont aucune n'utilise l'extension .html. J'utilise également le plugin permalinks personnalisé qui me permet de choisir spécifiquement l'URL que je veux pour chaque page.


En ce qui concerne votre question sur le nombre de pages de votre site, il est courant d’avoir des pages distinctes pour contact.html, about.html, privacy.html et faq.html. Je pouvais voir fusionner les informations de contact avec les informations "à propos de nous", mais je n'essaierais pas de mettre tout sur une page, cela prend trop de temps.

4

Du point de vue du référencement, il n'est pas judicieux de diffuser un contenu différent via Javascript, car un robot d'exploration de sites Web est susceptible de voir une page vide ou toujours le contenu par défaut. Dans les deux cas, votre contenu ne sera pas entièrement indexé.

Servir un contenu différent via PHP est faisable et des sites entiers sont servis par un seul fichier. Ces sites ont généralement une gestion de contenu en guise de back-end qui fonctionne de cette façon ou non. Si vous écrivez votre propre site, il sera probablement plus difficile simplement de le développer et de le maintenir.

Vous avez déjà répondu à la partie "servir sans extension" de votre question de deux manières. Il existe d'autres variantes selon l'organisation de votre équipe, mais vous utilisez généralement le moteur RewriteEngine d'Apache.

3
Itai

Le moyen le plus simple de créer des URL sans .html est souvent de créer un répertoire appelé webpage et d’y avoir un fichier nommé index.html. Le fichier est en fait

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

mais vous pouvez y accéder en tant que

http://website.com/directory/webpage

Apache (et la plupart des autres systèmes) ont un paramètre de configuration pour lequel les noms de fichiers doivent être traités comme des index à cette fin.

0
Iain Hallam