SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > Apache HTTP-Server

Apache HTTP-Server Alles was Ihr über den Apache diskutieren möchtet, gehört hierein

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 09.10.2013, 17:21:16
otto888 otto888 ist offline
Anfänger
 
Registriert seit: Oct 2013
Alter: 60
Beiträge: 4
mod_rewrite + wildcard + Subdomains

Hallo

einfache mod_rewrite-Anweisungen konnte ich bisher immer selbst erstellen.
Jedoch breche ich mir bei dieser Sache die Ohren.

Ich habe eine domain mit wildcard-Subdomains

Beispiel
www.domain.de

Subdomain, die läuft:
main.db.domain.de

Das "main" kann ich beliebig tauschen oder erweitern - funzt immer:

Beispiele:
de.db.domain.de funzt!
cn.db.domain.de funzt!
en.db.domain.de funzt!
p.123.de.domain.de funzt!
f.123.de.domain.de funzt!
...

Dort habe ich ein Datenbankscript (script.php) laufen, welches folgende Parameter erwartet:
lang (Sprache)
id_art (p/f)
id (eine ID)


Wenn jemand folgende url eingibt, hätte ich gern, daß sich die url im Browser "nicht" ändert,
aber das script "script.php" aufgerufen wird.

Also jemand gibt z.B. ein:

Beispiel1:
p.123.de.domain.de
Dabei soll das Script "script.php" aufgerufen werden und die Angaben aus der url ausgewertet werden können.
also: script.php?id_art=p&id=123&lang=de

Beispiel2:
f.456.cn.domain.de
Dabei soll das Script "script.php" aufgerufen werden und die Angaben aus der url ausgewertet werden können.
also: script.php?id_art=f&id=456&lang=cn

Hier weiß ich nicht einmal ansatzweise, wie ich mod_rewrite in der .htacess einrichte.

Vielleicht kann mir jemand einen "Schubser" in die richtige Richtung geben.

Vielen Dank schon jetzt!
Mit Zitat antworten
  #2  
Alt 09.10.2013, 20:34:01
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: mod_rewrite + wildcard + Subdomains

Zeige sicherheitshalber noch mal Deinen Virtualhosteintrag.

Dein Vorhaben wäre mit PHP bequemer umzusetzen:
PHP-Code:
echo $_SERVER["HTTP_HOST"]; 
oder
PHP-Code:
echo $_SERVER["SERVER_NAME"]; 
Mit ner Switch-Case Fallentscheidung kannst Du relativ einfach die aktuelle Domain ermitteln oder im Fehlerfalle eine Fehlerseite anzeigen.

btw: verwende zur Erklärung immer *.example.com oder *.example.net. Die Domains existieren und dienen als Beispieldomains, wenn jemand was erklären möchte.

domain.de gehört einer Firma:
Code:
Domain: domain.de
Status: connect
Changed: 2013-01-03T14:55:34+01:00

[Tech-C]
Type: ROLE
Name: InterNetWire Hostmaster
Address: InterNetWire Communications GmbH
Address: Wilhelm-Wagenfeld-Str. 20
PostalCode: 80807
City: Muenchen
CountryCode: DE
Phone: +49 89 550610
Fax: +49 89 55061199
Email: service@internetwire.de
Changed: 2006-02-22T15:23:29+01:00
Mit Zitat antworten
  #3  
Alt 09.10.2013, 22:31:19
otto888 otto888 ist offline
Anfänger
 
Registriert seit: Oct 2013
Alter: 60
Beiträge: 4
AW: mod_rewrite + wildcard + Subdomains

Vielen Dank!
Ja - daran dachte ich auch schon - möchte aber nicht, daß eine Umleitung mit den Parametern sichtbar ist
und es für die Suchmaschinen so aussieht - insbes. Baidu - daß es sich um die Rootdatei handelt.
Mir ist aufgefallen, daß Baidu Rootseiten und Rootseiten von Subdomains indexieren.
Unterseiten dagegen nicht oder halt nur, wenn sich der Server auf dem chinesischen Festland befindet.
Was meinst Du mit "Zeige sicherheitshalber noch mal Deinen Virtualhosteintrag."?
Ich betreibe einen Virtual Server Managed 5.0 L bei Hosteurope
Mit Zitat antworten
  #4  
Alt 10.10.2013, 16:11:49
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: mod_rewrite + wildcard + Subdomains

Zitat:
Zitat von otto888 Beitrag anzeigen
Ja - daran dachte ich auch schon - möchte aber nicht, daß eine Umleitung mit den Parametern sichtbar ist
Die ist bei switch-case nicht sichtbar:
PHP-Code:
switch($_SERVER["SERVER_NAME"]){
  case 
'de.db.example.com':
     include 
__dir__ '/domain1.php';
     break;
  case 
'cn.db.example.com':
     include 
__dir__ '/domain2.php';
  default:
     include 
__dir__ '/404.php';

Zitat:
Was meinst Du mit "Zeige sicherheitshalber noch mal Deinen Virtualhosteintrag."?
Er sollte ungefähr so aussehen:
Code:
<virtualhost 1.2.3.4:80>
  ServerName "example.com"
  ServerAlias "*.example.com"
...
</virtualhost>
Zitat:
Ich betreibe einen Virtual Server Managed 5.0 L bei Hosteurope
Der verwendet Plesk. Da hast Du etwas Arbeit, dem Teil ne catch-all Domain unterzujubeln:
vhost.conf erzeugen bzw. editieren und
Code:
/usr/local/psa/admin/bin/httpdmng --reconfigure-domain example.com
Ist allerdings abhängig von der Plesk Version.
Mit Zitat antworten
  #5  
Alt 10.10.2013, 16:40:41
otto888 otto888 ist offline
Anfänger
 
Registriert seit: Oct 2013
Alter: 60
Beiträge: 4
AW: mod_rewrite + wildcard + Subdomains

OK - Vielen Dank,
habe es nun so gelöst:

htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^main.db.domain.de$ [NC]
RewriteCond %{REQUEST_URI} !^/(css|js|images)(/.*)?
RewriteRule ^ script.php [QSA,L]

1. Rewrite anschalten
2. betrifft nicht main.db.domain.de
3. betrifft nicht Dateien, die sich in den Ordnern "css", "js", "images" befinden
4. Weiterleitung zum Script: script.php

Dort werte ich mittels PHP
$_SERVER["HTTP_HOST"]
aus und verhindere ungültige und ungewollte Aufrufe.
$_SERVER["HTTP_HOST"] zeigt mir z.B.: http://f12345.cn.db.domain.de/

Für alle, die es interessiert:

PHP:
// Weiterleitung falls hier nicht erwünscht
function wech_hier(){
$url_neu = "http://main.db.domain.de"; //falls umgeleitet wird
header ('HTTP/1.1 301 Moved Permanently');
header ("Location: ".$url_neu);
exit();
}

// die ID ohne "p" oder "f" als Array übergeben
// Für jede einzelne Ziffer wird geprüft, ob es eine Zahl ist.
function is_numeric_array($array) {
foreach ($array as $key => $value) {
if (!is_numeric($value)) return false;
}
return true;
}

// Punkte in der Domain zählen
$anz_punkt = substr_count($_SERVER["HTTP_HOST"], "."); //anzahl punkt

$teile = explode(".", $_SERVER["HTTP_HOST"]);

$ai = $teile[0];
$la = $teile[1];
$sd = $teile[2];
$hd = $teile[3];
$su = $teile[4];

// Url falsche eingegeben oder damit rumgespielt
// Bei dieser Konfiguration darf der Aufruf nur 4 Punkte enthalten --> ansonsten ungültig --> Weiterleitung
if ($anz_punkt == "4"){
} else{
wech_hier(); //irgendwas stimmt mit der url nicht Punkte nicht = 4
}

// Kein Teil zwischen den Punkten darf leer sein --> ansonsten ungültig --> Weiterleitung
if (($ai == "")||($la == "")||($sd == "")||($hd == "")||($su == "")){
wech_hier(); // irgendein Teil ist leer!
} else{}

// Die einzelnen Inhalte der URL werden auf gültige Werte geprüft
if ($su == "de"){
} else {
wech_hier(); // su != "de"
}

if ($hd == "domain"){
} else {
wech_hier(); // hd != "domain"
}


if ($sd == "db"){
} else {
wech_hier(); // sd != "db"
}


if (($la == "de")||($la == "cn")){
} else {
wech_hier(); // la nicht erlaubt
}


//Trennen von "p" oder "f" von ID
$id = substr($ai, 1);

//Übergabe von ID als Array an funktion
$id_array = array();
for($i=0; $i<strlen($id); $i++){
$id_array[] = $id{$i};
}

//Übergabe von ID als Array an Funktion und Auswertung
if (is_numeric_array($id_array)) {
} else {
wech_hier(); // id ist keine Zahl
}

So - das funktioniert bei mir.
Nochmal Vielen Dank für die Hilfe und Tipps.

Weiß jetzt nicht, wie man diesen Beitrag als beendet deklariert.
Mit Zitat antworten
Antwort

Stichworte
htaccess, mod_rewrite, subdomain, wildcard


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
htaccess: ohne www umleiten bei subdomains Estariel Apache HTTP-Server 2 06.10.2008 10:52:24
mod_rewrite für subdomains CrAnE Apache HTTP-Server 1 16.06.2006 11:45:35
substr array oder Text mit Wildcard skokarl PHP Grundlagen 3 14.04.2006 00:05:09
Subdomains oder nicht? JansonChristian Off Topic Area 14 10.05.2005 18:25:09
Wildcard für if-Abfrage pfuchs PHP Grundlagen 2 11.10.2003 19:51:32


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:36:12 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt