J'essaie de structurer mon site de manière à desservir différents domaines de contenu, un peu comme celui-ci. Je me demande comment ils font pour que les sous-répertoires aient leurs propres pages par défaut, par exemple:
http://webmasters.stackexchange.com/questions/ask
(l'URL de la page de demande).
Cela ressemble à une page par défaut car elle ne se termine pas par une extension de fichier, mais je ne sais pas comment cela fonctionne. Je travaille sur un serveur IIS hébergé sur GoDaddy et j'utilise le modèle de pages Web ASP.NET (SPA) si cela fait une différence.
Et si ce ne sont pas des pages par défaut, pourquoi apparaissent-elles sans extensions de fichiers?
Il est très facile de configurer un serveur pour masquer les extensions de fichier par défaut. Sur un serveur Apache par exemple, cela peut se faire comme suit:
RewriteEngine On # Unless directory, remove trailing slash RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/$ http://example.com/folder/$1 [R=301,L] # Redirect external .php requests to extensionless url RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L] # Resolve .php file for extensionless php urls RewriteRule ^([^/.]+)$ $1.php [L]
Je suppose que IIS peut être configuré pour faire quelque chose de similaire, mais je n'ai jamais utilisé IIS.
Je ne suis pas sûr de ce que vous entendez par "page par défaut" cependant. Si vous souhaitez qu'une page d'index apparaisse sans nom de fichier, il vous suffit de l'appeler index.php
, index.html
, ou quelque chose du genre, en fonction de la configuration de votre serveur.
Par exemple, http://www.example.com/
et http://www.example.com/index.html
seraient la même chose. Lorsque vous accédez à la première URL, sans nom de fichier, le fichier d'index ne s'affiche que de toute façon, mais le nom de fichier est masqué dans la barre d'adresse. Si vous essayez de masquer l'extension d'un fichier en plus du fichier d'index, vous aurez besoin d'une sorte de règle de réécriture similaire à celle décrite ci-dessus pour IIS.