Comme j'utilise React Router pour gérer mes routes dans une application React, je suis curieux de savoir s'il existe un moyen de rediriger vers une ressource externe.
Disons que quelqu'un accède à :
example.com/privacy-policy
Je voudrais le rediriger vers :
example.zendesk.com/hc/en-us/articles/123456789-Privacy-Policies
Je ne trouve absolument aucune aide pour éviter de l'écrire en JavaScript brut lors du chargement de mon index.html avec quelque chose comme :
if (window.location.path === "privacy-policy"){
window.location = "example.zendesk.com/hc/en-us/articles/123456789-Privacy-Policies"
}
1 votes
Quel React Router utilisez-vous?
1 votes
Je suis en train d'utiliser la version 3.x
2 votes
Il suffit de changer
window.location.href
pour effectuer une redirection formelle.4 votes
@AmirhosseinMehrvarzi cela ne signifie en réalité rien. Pourriez-vous être plus spécifique ou donner un exemple? De plus, je ne suis pas sûr que vous ayez remarqué, mais cette question a déjà une réponse acceptée traitant de React & React Router, qui est de quoi parlait la question.
1 votes
@Relic Vous devez utiliser cela comme votre url dans votre condition if. J'ai eu un problème similaire il y a quelques jours et j'ai trouvé cette façon simple et efficace. Il redirige immédiatement. La réponse acceptée est une solution de routage (Bien qu'elle viole les principes de Routage, en considérant que l'architecture de Routage est pour la navigation à l'intérieur de l'application et non pour l'extérieur) qui ne fonctionne pas pour tout environnement comme le mien.
0 votes
@AmirhosseinMehrvarzi la redirection est instantanée peu importe...
0 votes
@AmirhosseinMehrvarzi Cette question est très spécifique et la solution ici en parle beaucoup. Il cherchait quelque chose qui les a cassés parce qu'il n'y avait pas de 'redirect' intégré dans ce routeur qui fait partie des principes de routage. Considérez 301 & 302. La réponse acceptée est exactement une redirection. Ce qui, parce qu'il ne peut pas porter les en-têtes de réponse, n'est pas une bonne idée mais lorsque vous avez une application Web monopage sans appels de domaine à partir d'URIs, il n'y a aucun moyen de le faire depuis le serveur / cloudfront. Ceci est la seule solution dans React pour l'OP.
0 votes
Aussi @AmirhosseinMehrvarzi si vous n'utilisez pas l'environnement react, cette question n'est pas pour vous, ni la réponse. Donc il est logique que cela ne fonctionne pas.
0 votes
@Relic Non :-). J'avais un projet React. Le sens de l'environnement est d'utiliser
js
outs
,es2015
ou .... Ils affectent la solution. J'ai utilisé ma solution et elle fonctionne correctement. Pour continuer la conversation, veuillez aller dans le salon de discussion. C'est interdit ici. Merci.0 votes
@AmirhosseinMehrvarzi ces choses étaient sans importance... et je suis content que tu aies trouvé ta propre solution. Si tu remarques, j'ai trouvé ma propre solution aussi :D
0 votes
Window.location.href peut causer des problèmes de scripts entre sites n'est-ce pas ? Y a-t-il un moyen de contourner cela ?