2017-10-10 14 views
3

J'ai le code ci-dessous, que je peux utiliser le ci-dessous pour définir une variable:variable de demander hôte Apache htaccess?

SetEnvIf Host (.*) custom_host=$1 

Ce que je veux est une variable de l'hôte/ordinateur demandeur.

Par exemple, si le site http://example.com:32/welcome fait la demande, je veux que ce que la variable?

Répondre

0

Au lieu de Host vous avez besoin de Referer pour accéder à l''entête HTTP Referer qui est envoyée dans la demande. Par exemple:

SetEnvIf Referer (.*) custom_referer=$1 

Cependant, selon le langage de script côté serveur que vous utilisez, vous aurez rarement besoin d'assigner à une autre variable. Vous pouvez généralement le référencer directement si nécessaire.

Notez également, l'en-tête HTTP Referer pourrait ne pas être réglé. Le site de référence et le navigateur de l'utilisateur peuvent tous deux bloquer cela.

MISE À JOUR:

Comment puis-je avoir juste le protocole, le domaine et l'hôte sans le chemin.

Essayez de changer la regex à quelque chose comme:

SetEnvIf Referer ^(https?://[^/]+) custom_referer=$1 

Si le Referer est http://example.com:32/welcome, cela devrait entraîner juste http://example.com:32 être stockés dans la variable custom_referer.

+0

qui fonctionne, mais je me suis rendu le match CORS échoue car il a le chemin là-dedans aussi, comment puis-je avoir juste le protocole, le domaine et l'hôte sans le chemin. –

+0

pouvez-vous s'il vous plaît régler cette réponse pour supprimer le slash, alors il devrait fonctionner –