alle Unterverzeichnisse per htaccess auf root umleiten

S

StephanSch

Aktives Mitglied
Thread Starter
Dabei seit
24.07.2006
Beiträge
406
Reaktionspunkte
1
Ich habe z.b. www.domain.de/section/de/bla.html ... nun möchte ich das alle Dokumente, die unterhalb des Verzeichnises "section" liegen auf www.domain.de umgeleitet werden. Wie muss hierfür die htaccess aussehen?
Bisher habe ich jedes Dokument einzeln der www.domain.de zugewiesen bzw. umgeleitet. Daher habe ich nun 50 Einträge in der htaccess. Das geht sicherlich eleganter, in dem man sagt, dass alle Dokumente unterhalb des Ordners section umgeleitet werden sollen, aber wie?
Danke für eure Antworten!
 
Und gleich nochmal eine Frage :)

Code:
# HTML Rewrite Rules
RewriteCond %{HTTP_HOST} !^www\.domain\.de$
RewriteRule ^(.*)$ http://www.domain.de/$1 [L,R=301]
RewriteRule ^([-0-9a-z]+)-p([0-9]+).html$ ?id=$2

Mit der Regel, kann ich quasi die HTML URLs z.b. wie folgt benennen: www.domain.de/meine-keywords-p9.html .... somit würde die 9 als id an die index.php weitergeben werden und der richtige content wird angezeigt. Das funktioniert wunderbar.
Google AdWords hängt an die vorgegauckelte html datei noch eine gclid variable an, das würde dann z.b. so aussehen: www.domain.de/meine-keywords-p9.html?gclid=Geggeg .... wie bekomme ich es hin, dass die gclid Variable (sofern eine vorhanden ist) auch an die index.php als Variable angehängt wird?
 
nun möchte ich das alle Dokumente, die unterhalb des Verzeichnises "section" liegen auf www.domain.de umgeleitet werden.

Hallo,

Du legst eine .htaccess in /section:

Code:
redirect / http://www.domain.de

Für Feinheiten google mal "htaccess redirect", da gibt's eine Menge Beispiele.
 
Und gleich nochmal eine Frage :)

Code:
# HTML Rewrite Rules
RewriteCond %{HTTP_HOST} !^www\.domain\.de$
RewriteRule ^(.*)$ http://www.domain.de/$1 [L,R=301]
RewriteRule ^([-0-9a-z]+)-p([0-9]+).html$ ?id=$2

wie bekomme ich es hin, dass die gclid Variable (sofern eine vorhanden ist) auch an die index.php als Variable angehängt wird?

Ich würde die dritte Zeile so abändern:
Code:
RewriteRule ^\w+-p(\d+).html\??([^?]+)?$ ?id=$1&rest=$2

Jetzt wird alles, was hinten noch dranhängt als "rest" übergeben. Dort kannst Du dann die gclib rausfischen.
 
Ahja super, vielen Dank!
 
Wie müsste ich das ganze umschreiben, wenn ich die "id" bereits in der HTML Datei anhängen möchte, also z.b. meine-seite.html?id=1&gclid=bla
Code:
RewriteRule ^\w+-p(\d+).html\??([^?]+)?$ ?id=$1&rest=$2
und die ID und gclid Variable dann an die php datei weitergeben möchte?
 
Die müsste mittels der Regel an die PHP-Datei weitergegeben werden.

Mach mal
PHP:
var_dump($_GET['gclid'];

wenn Du so eine HTML-Datei aufrufst, da sollte er Deine Variable anzeigen.
 
Leider wird mir die glcid Variable nicht ausgegeben...

www.domain.de/seite-p1.html?gclid=test

Wenn ich das ganze mit der RewriteRule Aufrufe, wird die glclid Var nicht übertragen...hast du eine Idee woran das liegt?

print $_GET['gclid'];
 
Versuch mal

PHP:
print $_GET['rest'];
was sagt er da?
 
Ebenfalls nichts, also in meiner htacess steht folgendes drin:
Code:
RewriteEngine on
RewriteRule ^\w+-p(\d+).html\??([^?]+)?$ ?id=$1&rest=$2
In meiner index.php steht u.a. die Ausgabe:
Code:
print $_GET['rest'];
print $_GET['gclid'];
print $_GET['id'];
Die Seite rufe ich wie folgt auf: www.domain.de/seite-p1.html?gclid=test

Es wird mir allerdings nur die id ausgegeben.
 
Funktioniert das bei dir? Ich bekomme es einfach nicht hin... :-(
 
Konnte es noch nicht ausprobieren. Arbeite gerade. Vermute in der Regel ist ein Fehler.
 
Code:
RewriteRule ^(.+)\.html?(.*)$ ./?id=$1&$2

So sollte doch wirklich alles was an die html angehängt wird in die $2 Variable gespeichert werden, aber leider funktioniert auch das nicht.
 
Code:
RewriteRule ^.+\.html$ ./ [L,QSA]

So funktioniert es, nun werden alle Variablen an die index.php weitergeleitet. Also in meinem Fall die id und gclid Variable, es können aber auch sämtliche andere Variablen durch den Benutzer angehängt werden...

D.h. ich kann meine "Fake" Url so gestalten: meine-seite.html?id=1&gclid=GEiogsnsge
An die index.php würde dann folgendes weitergeleitet werden: ./?id=1&gclid=GEiogsnsge

Passt das so?

Und warum funktioniert folgendes nicht:
Code:
RewriteBase /
RewriteRule ^.+/$ ./ [L,QSA]
Bei der RewriteRule wird mir zwar der Text angezeigt und der richtige Content geladen, aber sämtliche Bilder und CSS Dateien, werden nicht mehr gefunden...

Angenommen ich möchte http://www.domain.de/bla/blu/beb/?id=1 auf index.php?id=1 umleiten, wie geht das?
 
Zuletzt bearbeitet:
Zurück
Oben Unten