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.