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



## IndoorJo (19. Mai 2010)

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


----------



## VanHellsehn (19. Mai 2010)

```
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?


----------



## queicherius (19. Mai 2010)

VanHellsehn hat gesagt.:


> ```
> RewriteEngine on
> RewriteRule ^verzeichnis/index\.php?(.*)$ index.php?$1 [L]
> ```
> ...



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


```
RewriteEngine on
RewriteRule ^index\.php?(.*)$ verzeichnis/index.php?$1 [L]
```


----------



## IndoorJo (19. Mai 2010)

Hallo!



queicherius hat gesagt.:


> Ich glaub er wollte aus dem Root in ein Verzeichnis umleiten:
> 
> ```
> RewriteEngine on
> ...


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).


----------



## queicherius (19. Mai 2010)

```
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


----------



## IndoorJo (19. Mai 2010)

queicherius hat gesagt.:


> ```
> RewriteEngine on
> RewriteRule ^index\.php\?(.*)$ verzeichnis/index.php?$1 [L]
> ```
> ...



Sorry, das klappt leider gar nicht.

In meiner index.php steht


```
<?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?


----------



## queicherius (19. Mai 2010)

Dann machst du irgendwas falsch 

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?


----------



## IndoorJo (19. Mai 2010)

Huhu!


queicherius hat gesagt.:


> Dann machst du irgendwas falsch
> Hast du vielleicht in der index.php im Verzeichnis auch eine Weiterleitung?



Steht doch in meinem letzten Posting ;-) Aber prinzipiell muss doch zuerst die .htaccess greifen. Ist das Ergebnis 0, wird die index.php ausgeführt. Oder?


----------



## queicherius (19. Mai 2010)

IndoorJo hat gesagt.:


> Steht doch in meinem letzten Posting ;-)



Ich meinte, ob die index.php in dem Verzeichnis, dass du weiterleitest, auch ein header drin ist?



IndoorJo hat gesagt.:


> Aber prinzipiell muss doch zuerst die .htaccess greifen. Ist das Ergebnis 0, wird die index.php ausgeführt. Oder?



Ja.


----------



## IndoorJo (19. Mai 2010)

queicherius hat gesagt.:


> Ich meinte, ob die index.php in dem Verzeichnis, dass du weiterleitest, auch ein header drin ist?
> .


Die verzeichnis/index.php hat keine Weiterleitung, auch liegt im Verzeichnis "verzeichnis" keine .htaccess mit Weiterleitung.


----------



## IndoorJo (22. Mai 2010)

Hallo zusammen,

ich habe nun die Lösung in einem anderen Forum bekommen und möchte sie euch nicht vorenthalten:


```
RewriteEngine on
RewriteCond %{QUERY_STRING} .
RewriteRule ^(index\.php)?$ /pixelpost [L,R=301]
```


----------

