Umleitungsproblem mit .htaccess - gibt es eine Lösung?

IndoorJo

Grünschnabel
Hallo zusammen!

Mittels .htaccess möchte ich eine Dateistruktur nach fester Syntax in ein neu angelegtes Verzeichnis umleiten.

Hier zwei Beispiele:
http://www.domain.tld/index.php?showimage=118 soll umgeleitet werden nach http://www.domain.tld/verzeichnis/index.php?showimage=118
http://www.domain.tld/index.php?x=browse&pagenum=1 soll umgeleitet werden nach http://www.domain.tld/verzeichnis/index.php?x=browse&pagenum=1

Wichtig ist mir das Erkennen von index.php?....

Ist das irgendwie möglich? Beim Aufruf der Domain oder der Datei index.php ohne Anhang soll jedoch nicht umgeleitet werden.

Gruß,
Jochen
 
Code:
RewriteEngine on
RewriteRule ^verzeichnis/index\.php?(.*)$ index.php?$1 [L]
Mit diesem Befehl schreibt er alles was hinter der index.php steht auf die verszeichnis/index.php um.
Also wenn ich das richtig verstanden habe willst du das oder?
 
Code:
RewriteEngine on
RewriteRule ^verzeichnis/index\.php?(.*)$ index.php?$1 [L]
Mit diesem Befehl schreibt er alles was hinter der index.php steht auf die verszeichnis/index.php um.
Also wenn ich das richtig verstanden habe willst du das oder?

Ich glaub er wollte aus dem Root in ein Verzeichnis umleiten:

Code:
RewriteEngine on
RewriteRule ^index\.php?(.*)$ verzeichnis/index.php?$1 [L]
 
Hallo!

Ich glaub er wollte aus dem Root in ein Verzeichnis umleiten:
Code:
RewriteEngine on
RewriteRule ^index\.php?(.*)$ verzeichnis/index.php?$1 [L]
Danke, das klappt anteilig. Leider wird bei index.php (ohne etwas dahinter) auch ins verzeichnis umgeleitet. Das soll aber nicht so sein.

Letzten Endes möchte ich sogar, dass man aus dem root ohne Dateinamenangabe auf das Verzeichnis content weitergeleitet wird, aber auch aus dem root mit Angabe der index.php (ohne etwas dahinter).
 
Zuletzt bearbeitet:
Code:
RewriteEngine on
RewriteRule ^index\.php\?(.*)$ verzeichnis/index.php?$1 [L]

Ist mir gar nicht aufgefallen: ? ist auch ein Zeichen mit Wirkung und muss escaped werden :)
 
Code:
RewriteEngine on
RewriteRule ^index\.php\?(.*)$ verzeichnis/index.php?$1 [L]

Ist mir gar nicht aufgefallen: ? ist auch ein Zeichen mit Wirkung und muss escaped werden :)

Sorry, das klappt leider gar nicht.

In meiner index.php steht

PHP:
<?php 
header ("Location: content/");
?>
Mit deinem zuletzt gepostetem Code wird dennoch direkt auf content umgeleitet, egal ob ich nur index.php oder index.php?showimage=118 eingebe. Das von vorher funktionierte soweit, aber auch bei der Angabe von index.php wurde auf verzeichnis/index.php geleitet.

Muss hier nicht etwas mir RewriteCond gearbeitet werden?
 
Dann machst du irgendwas falsch :p

index\.php\?(.*) gibt bei mit mit index.php keinen Match aber mit index.php? sehr wohl.

Hast du vielleicht in der index.php im Verzeichnis auch eine Weiterleitung?

// EDIT: Oder was anderes in der .htaccess?
 
Zurück