PHP Subdomain als reffer ausgeben? *gelöst*

realmoney

Gesperrt
23 März 2008
900
104
Moinsen

Hab n paar subdomains die alle auf das gleiche Verzeichnis weiterleiten.
Jedoch ist es zwingend notwendig das der Subdomainname (nur der Name!!!) im Titel der Seite auftaucht.

Bsp: https://subdomain.domain.de (Im seitentitel muss dann subdomain stehn)
https://subdomain2.domain.de (im Seitentitel muss dann subdomain2 stehn)

Den Url anzeigen lassen is ja nich das problem.

Code:
<script type="text/javascript">
<!--
document.write (location.href);
//-->
</script>

Allerdings muss das https:// und das .domain.de weg so das wirklich nur der Subdomainname dasteht.

Hat da jemand ne idee?Villeicht mit htaccess (wovon ich aber 0 ahnung hab)

Funzt auch super.Allerdings scheint JS nicht im Titel tag zu laufen :( Jetzt muss ich nur noch das https:// und das domain.de wegbekommen.Ne Idee???

Wie kann ich also den Subdomainnamen im Titel anzeigen lassen?
hab mich ma bissl rumgegoogelt und mit PHP kann man die Url die in der Urlleiste is wohl nich auslesen oder geht das doch?Wenn ja wie?
Wie gesagt wenn in der Urlleiste https://subdomain.domain.de steht dann muss im Titel der Seite das subdomain drinstehn.
Also Urlleiste auslesen,beschneiden und ausgeben.

Ich komm nur nich hinter ies geht :(
 
Zuletzt bearbeitet:
Als Ansatz um es mit PHP zu lösen könntest du dir mal den Wert von $_SERVER['SERVER_NAME'] anschauen. Bin mir nicht sicher, ob die auch die Subdomain beinhaltet, aber es kann gut sein.

Die musst du dann nur noch mit replace() oder, substr() o.ä. bearbeiten um sie dann auszugeben.
 
Ok

Code:
<?php echo $_SERVER['SERVER_NAME']?>
isses und es nimmt auch die Subdomains.

Jetzt muss ich nur noch rauskriegen wie ich das .domain.de wegschneiden kann...

Mal weiter googlen :D
 
Schnell, dreckig und unflexibel:
PHP:
$sub = str_replace('.example.com', '', $_SERVER['SERVER_NAME']);

Ein anderer Ansatz wäre, die Domain via explode() bei den Punkten zu zerlegen und dann die letzen beiden Teile wegzuwerfen. Allerdings gibt es ja auch TLDs, bei denen man die letzten drei wegwerfen müsste (www.example.co.uk).
 
Ein anderer Ansatz wäre, die Domain via explode() bei den Punkten zu zerlegen und dann die letzen beiden Teile wegzuwerfen. Allerdings gibt es ja auch TLDs, bei denen man die letzten drei wegwerfen müsste (www.example.co.uk).
Wieso nicht anders rum drangehen: einfach nur den ersten Teil nehmen und den Rest gar nicht mehr beachten.
PHP:
$subdomain = reset(explode('.', $_SERVER['SERVER_NAME']));
 
Stell ich mich grad zu doof an oder is das hier einfach falsch???

Code:
<?php echo $_SERVER['SERVER_NAME'];
$sub = str_replace('.example.com', '', $_SERVER['SERVER_NAME']);  
?>

Bleibt immer noch [email protected] stehn.Weg geht nix (Ja hab example durch meine Domain ersetzt ;) )
 
PHP:
<?php
$sub = str_replace('.example.com', '', $_SERVER['SERVER_NAME']);  
echo $sub;
?>

Super Danke :)

Edit: Geht das auch für mehrere Domains?
Wenn ich die $sub zeile kopiere und n 2 domainnamen einsetzte funzt es nur bei der 2 domain.
setzt ich n zweites '.example.com', hinter das 1 gehts auch net :(
 
Zuletzt bearbeitet:
Natürlich geht nicht, was du da schreibst. Die Funktion ist ja auch einfach nur dazu da, in einem String (sub.example.com) einen Teil (.example.com) durch einen andernen Text (in diesem Fall ein leerer String) zu ersetzen.

https://de.php.net/manual/de/function.str-replace.php

Mhh aber es muss doch ne möglichkeit geben mehrere zu ersetzen.
wenn domain a dann delete domain a und wenn domain b dann delete domain b.

Oder denk ich da grade in die falsche Richtung?
 
Ich hatte doch dazu geschrieben
Schnell, dreckig und unflexibel
Warum nimmst du den Ansatz überhaupt, wenn du das Script flexibel bei mehreren Domains einsetzen willst?

Schau dir doch meinen zweiten Ansatz mit explode() an, den tleilax sogar von der Idee noch ein bisschen verbesser hast.

Und ja - ich könnte die die zwei Zeilen, die du dazu brauchst, auch hinschreiben. Aber ich befürchte, du lernst nichts dabei.

// edit:
Und du könntest mal den Thread-Titel anpassen, weil um Javascript geht's hier nicht mehr. ;)
 
Du trennst mit explode die Domain an den Punkten und schreibst die Rückgabe in eine Variable deiner Wahl. Diese Rückgabe/Variable ist ein Array, von dem du den ersten Eintrag anzeigen kannst.
 
Natürlich geht nicht, was du da schreibst. Die Funktion ist ja auch einfach nur dazu da, in einem String (sub.example.com) einen Teil (.example.com) durch einen andernen Text (in diesem Fall ein leerer String) zu ersetzen.
Da muss ich dich korregieren, das geht wohl.

PHP:
str_replace(array('a', 'b'), '', 'abcde'); // cde
str_replace(array('a', 'b'), array('c', 'd'), 'abcde'); // cdcde
 
Da muss ich dich korregieren, das geht wohl.

PHP:
str_replace(array('a', 'b'), '', 'abcde'); // cde
str_replace(array('a', 'b'), array('c', 'd'), 'abcde'); // cdcde

Ok...jetzt musste mir nur erklären was die Buchstaben da bedeuten sollen :D Oder is das nur n beispiel?Weil irgendwie ergibt das nich ganz n Sinn für mich...

Wie kann ich das für Domains machen 8O
ich versteh nich was das abcde bedeuten soll (das hinter den // is klar,sind kommentare)
 
das war doch javascript im ersten post oder ?

Man kann auch einen String in JavaScript zerlegen anhand eines Trenners und in diesem Fall wäre das ein "." !

Dann wäre $array[1] gleich dem gewollten subdomainnamen...
 
das war doch javascript im ersten post oder ?

Man kann auch einen String in JavaScript zerlegen anhand eines Trenners und in diesem Fall wäre das ein "." !

Dann wäre $array[1] gleich dem gewollten subdomainnamen...

Jupp war JS im 1 Post.Allerdings hat sich rausgestellt das der JS Code irgendwie nicht im Titletag arbeiten wollte...
 
Das gleiche gibt e sin PHP auch. Einen String zerlegen mithilfe eines Trenners "."
und auch hier is $array[1] der Subdomainname !