web-dev-qa-db-fra.com

Href sans préfixe http (s)

Je viens de créer une page html primitive. Le voici: exemple Et voici son balisage:

<a href="www.google.com">www.google.com</a>
<br/>
<a href="http://www.google.com">http://www.google.com</a>

Comme vous pouvez le voir, il contient deux liens. Le premier href n'a pas de préfixe "http" et lorsque je clique sur ce lien, le navigateur me redirige vers une page non existante https://fiddle.jshell.net/_display/www.google.com. Le second href a ce préfixe et le navigateur produit une URL correcte http://www.google.com/. Est-il possible d'utiliser des hrefs tels que www.something.com, sans préfixe http (s)?

15
Pupkin

C'est possible, et vous le faites en ce moment. Il ne fait tout simplement pas ce que vous pensez qu'il fait.

Considérez ce que fait le navigateur lorsque vous vous connectez à ceci:

href="index.html"

Que ferait-il alors lorsque vous vous connectez à cela?:

href="index.com"

Ou ca?:

href="www.html"

Ou?:

href="www.index.com.html"

Le navigateur ne sait pas ce que vous voulait dire, il sait seulement ce que vous lui avez dit. Sans le préfixe, il va suivre la norme pour l'adresse HTTP actuelle. Le préfixe est ce qui lui indique qu'il doit commencer à une nouvelle adresse racine entièrement.

Notez que vous n'avez pas besoin le http: partie, vous pouvez le faire:

href="//www.google.com"

Le navigateur utilisera le protocole actuel (http, https, etc.) mais le // lui indique qu'il s'agit d'une nouvelle adresse racine.

23
David

Vous pouvez omettre le protocole en utilisant // devant le chemin. Voici un exemple:

<a href="//www.google.com">Google</a>

En utilisant //, vous pouvez indiquer au navigateur qu'il s'agit en fait d'un nouveau lien (complet) et non d'un lien relatif (par rapport à votre lien actuel).

13
ssc-hrep3