Je ne sais pas beaucoup quoi que ce soit sur la façon dont fonctionne l'hébergement, alors s'il y a des informations supplémentaires que je devrais fournir, merci de me le faire savoir.
L'URL example.com
envoie correctement à www.example.com
. Mais example.com/file.pdf
et example.com/some-blog-post
transmet également à www.example.com
plutôt qu'à www.example.com/file.pdf
et www.example.com/some-blog-post
comme je le voudrais.
Comment puis-je configurer cela correctement?
J'héberge mon site Web personnel sur des pages GitHub, avec un nom de domaine personnalisé via Namecheap. Ma configuration actuelle est la suivante:
Host Name IP Address / URL Record Type
@ http://www.example.com URL Redirect
www example.github.io CNAME (Alias)
Et le référentiel GitHub "example.github.io
" contient un fichier CNAME
au niveau supérieur qui ne contient que le texte.
www.example.com
Vous avez implémenté cette redirection avec Namecheap. Leur document d'aide explique comment configurer les redirections dans les deux sens:
www1 http://destination.com Permanent (301) www2 http://destination.com/ Permanent (301)
Dans le cas ci-dessus,
www1.yourdomain.com
ne transmettra pas de valeur à l'URL de destination.www1.yourdomain.com/xyz.html
redirige les utilisateurs vershttp://destination.com
uniquement.D'autre part,
www2.yourdomain.com/xyz.html
redirige les utilisateurs vershttp://destination.com/xyz.html
(faites attention au/
dans la configuration).
Ainsi, dans l'interface de Namecheap, vous devez vous assurer que vos règles de redirection comportent une barre oblique de fin sur la destination.
Ce que vous pouvez faire est de définir example.com
et www.example.com
en tant qu'URL distinctes pointant vers deux dossiers différents sur le serveur, mais de faire en sorte que www.example.com
pointe sur le dossier contenant le contenu du site Web.
Ensuite, ces lignes peuvent être ajoutées au fichier de configuration principal d'Apache (httpd.conf) si vous avez installé mod_rewrite
.
RewriteEngine On
RewriteCond %{HTTP_Host} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
Assurez-vous simplement qu'ils sont ajoutés avant que les lignes personnalisées RewriteRule ne soient traitées pour le site Web example.com
, le cas échéant.
Tout d'abord, vous devez connaître le type de contenu. la redirection est parfaite. Si vous redirigez en fonction de la configuration du serveur (Apache), c'est parfait. example.com/file.pdf
dépôt en tant que fichier et sa source est example.com
so example.com
rediriger vers www.example.com
sous forme de contenu de dépôt au format pdf
Jusqu'à ce niveau, ça fonctionne bien.