web-dev-qa-db-fra.com

Comment ajouter le préfixe http: // à la redirection de sous-domaine dans htaccess

Je suis en train de réécrire une URL de sous-domaine avec une requête (cart.example.net/ProductDetail.jsp?LISTID=7C0400-1101763508) dans un sous-domaine www (www.example.net/product-category/product).

Le problème auquel je suis confronté est que le lien URL n'a pas le http:// (par exemple. cart.example.net) et qu'il passe à un 404 sur le serveur (et non à un 404 sur le site Web). Cela ne se produit pas sur les liens de sous-domaines qui ont déjà la http (par exemple. http://cart.example.net). Je crois que la solution consiste à ajouter la http dans .htaccess si cela est possible.

Toute aide sur l’ajout du http:// dans .htaccess ou toute autre solution possible est grandement appréciée!

1
ruad1

Le problème auquel je suis confronté est que le lien URL n'a pas le http:// (par exemple. cart.example.net)

Si le lien URL (c'est-à-dire la valeur de l'attribut href) manque le protocole et démarre simplement cart.example.net, le navigateur verra naturellement cette URL comme relative. Donc, en supposant que ce lien se trouve sur une page dont l'URL est http://example.com/path/to/page, le navigateur résoudra cette URL en:

http://example.com/page/to/cart.example.net/ProductDetail.jsp?LISTID=7C0400-1101763508

Si ce lien mal formé apparaît sur votre site (c'est-à-dire example.com), vous pourriez (théoriquement) utiliser mod_rewrite dans votre fichier racine .htaccess pour rediriger/corrige cette URL. Par exemple:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^LISTID=7C0400-1101763508$
RewriteRule cart\.example.net/ProductDetail\.jsp$ http://www.example.net/product-category/product? [R=301,L]

Toutefois, si le lien se trouve sur votre site, corrigez le code source HTML et non implémentez une redirection!

Malheureusement, cette URL provient d'un lien sur une épingle Pinterest sur lequel nous n'avons aucun contrôle direct. .... et cela va à un 404 sur le serveur (pas un 404 sur le site).

Si le lien se trouve sur un domaine externe (p. Ex. Pinterest), cette URL relative va naturellement se résoudre par rapport au domaine externe et n'ira jamais sur votre site web ni sur votre serveur! Donc, vous ne pouvez rien faire à ce sujet de votre côté.

Le "404 sur le serveur" n'est probablement pas votre serveur, mais un serveur sous le contrôle de Pinterest.

1
MrWhite