web-dev-qa-db-fra.com

"exemple.com" transfère à "www.exemple.com", mais "exemple.com/fichier.pdf" ne fait que transmettre à "www.exemple.com". Comment réparer?

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
3
shadowtalker

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 vers http://destination.com uniquement.

D'autre part, www2.yourdomain.com/xyz.html redirige les utilisateurs vers http://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.

1
Stephen Ostermiller

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.

1
Mike

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.

0
Vikas Avnish