Obtenez de domaine actuel
J'ai mon site sur le serveur
http://www.myserver.uk.com
Pour cela, j'ai deux de domaine:
http://one.com
et
http://two.com
je voudrais obtenir avec PHP domaine actuel, mais si j'utilise $_SERVER['HTTP_HOST']
puis cela me montrer
myserver.uk.com
au lieu de:
one.com or two.com
Comment puis-je obtenir de domaine, pas le nom du serveur? J'ai la version de PHP 5.2
- Vous ne pouvez obtenir l'URl principale. Lequel est le Principal de ces trois ?
- Exactement comment vos deux domaines " redirige les demandes sur votre serveur?
- probablement un cadre...
- le principal est myserver.uk.com. alors, comment puis-je obtenir un nom de domaine? Si j'ouvre le site avec l'adresse one.com je voudrais obtenir one.com au lieu de myserver.uk.com
- c'est le point infgeoax et j'essaie de faire, vous devriez obtenir le nom d'hôte que vous êtes connecté avec dans
$_SERVER['HTTP_HOST']
. Si les sitesone.com
ettwo.com
sont "redirection" à l'aide d'un (i)le cadre, la page elle-même provient toujours de la myserver.uk.com, de sorte que vous n'obtiendrez pas le vrai nom de domaine. Quelle est la source HTML pourone.com
? - Voir aussi stackoverflow.com/q/1459739/632951
Vous devez vous connecter pour publier un commentaire.
essayez d'utiliser ceci:
$_SERVER['SERVER_NAME']
ou analyser
EDIT:
La meilleure utilisation serait
Et peut être utilisé comme cela
Ce code ci-dessous est un bon moyen pour voir toutes les variables dans $_SERVER la structure HTML de sortie avec vos mots-clés mis en évidence, qui s'arrête directement après l'exécution. Depuis je ne l'oublie parfois que l'on à utiliser moi - même, je pense que cela peut être chouette.
À l'aide de
$_SERVER['HTTP_HOST']
me met à la (sous-domaine.)maindomain.l'extension. Semble être la solution la plus simple pour moi.Edit: si vous êtes réellement 'redirection' via un iFrame, vous pouvez ajouter un paramètre get qui stipule le domaine.
Et puis vous pouvez définir une variable de session qui persiste ces données dans votre application.
Je ne sais pas comment cette réponse a reçu des centaines de milliers de vues sans une seule mention des problèmes de sécurité à portée de main.
Vous pouvez utiliser, mais ils sont en insécurité
Cela devient le domaine de l'-têtes de la requête, qui est ouvert à la manipulation par des pirates, et peut conduire à l'empoisonnement de cache.
La valeur par défaut configuration d'Apache a usecanonicalname éteint, qui remplit
$_SERVER['SERVER_NAME']
avec le même en-tête$_SERVER['HTTP_HOST']
aurait utilisé de toute façon. (plus le port). Voici quelques exemples malveillants. Si usecanonicalname est sur, alors il est plus sûr, mais je ne sais pas si ce type de configuration fonctionne dans la plupart des environnements.Mises en garde:
était sur [source].
La façon correcte
De nombreux cadres déjà prendre soin de cela pour vous, afin de consulter la documentation de votre cadre. Si vous n'êtes pas à l'aide d'un cadre, de l'une des méthodes suivantes:
Pour les utilisateurs de WordPress
Si vous utilisez WordPress, vous pouvez en toute sécurité obtenir le domaine de la sorte:
(Mais si vous êtes à la construction d'une URL dans WordPress, il suffit d'utiliser home_url ou site_url, ou tout du d'autres URL fonctions.)
$urlparts['path']
n'est pas définie si installé dans le répertoire racine du domaine. D'autre$urlparts['path']
retourne le sous-répertoire.Essayer
$_SERVER['SERVER_NAME']
.Conseils: Créer un fichier PHP qui appelle la fonction
phpinfo()
et de voir les "Variables PHP" section. Il ya un tas de variables utiles nous n'avons jamais pensé.Réponse tardive, mais ici, il va:
Il vous donnera un propre nom de domaine, sans
www
Je sais que cela pourrait ne pas être entièrement sur le sujet, mais dans mon expérience, je trouve que le stockage de WWW-ness de l'URL actuelle dans une variable utile.
Edit: En outre, veuillez voir mon commentaire ci-dessous, pour voir ce qui c'est arriver à.
C'est important pour déterminer si le dispatch des appels Ajax avec "www", ou sans:
Lors de l'envoi d'un appel Ajax le nom de domaine doit correspondre à celle de dans la barre d'adresse du navigateur, sinon vous aurez Uncaught SecurityError dans la console.
Alors je suis venu avec cette solution pour résoudre le problème:
Ensuite, en fonction de si $WWW est vrai, ou faux exécuter le bon appel Ajax.
Je sais que cela peut sembler trivial, mais c'est un problème commun qui est facile de trébucher.
window.location
. En PHP, vous avezSERVER_NAME
.désolé Pour la réponse Tardive, tout le monde est à l'aide de
parse_url
fonction, mais, à certains moments, l'utilisateur peut passer le argumet dans différents formatafin de corriger cela, j'ai créé la finction vérifier cela
il suffit de passer l'url et obtenir le domaine
Par exemple
sera de retour le résultat sera
et dans certaines situation
et il est également de retour
stackoverflow.com
Espère que cela Aide
Simplement essayer: