# Subdomain & REQUEST_URI filtern und URL neu aufbauen



## mackattack (30. April 2007)

Moin, 

ich hab folgende Problemstellung. Anfragen die in solcher Form an den Server gesendet werden, sollen auf die im Beispiel nachfolgende URL weitergeleitet werden. 

Meine Beispiel URL: 
_http://subdomain.domain.tld/artikel/kinderwagen_ *weiterleiten nach* _http://www.domain.tld/subdomain/artikel/kinderwagen_ 

Mein Ansatz in der .htaccess 

```
RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^([^.]+)\.domain\.tld(\/.*)?$ [NC] 
# Folgende Regel funktioniert, greift aber nur die Subdomain ab. Was hier noch fehlt ist die angeforderte REQUEST_URI. 
# RewriteRule ^(.*)? /%1 [L] 
 
# Folgende Regel funktioniert leider nicht. 
RewriteRule ^([^www]|.*?\.)?domain\.tld(\/.*)?$ /%1%2 [L]
```
 
Ich hoffe das einer von euch erfahrenen mod_rewriter'n den Fehler findet und mir helfen kann, hierfür schon mal vielen dank. 

Gruß 
MackAttack


----------



## Gumbo (30. April 2007)

Der erste Ansatz war schon nicht schlecht. Probier mal Folgendes:
	
	
	



```
RewriteCond   %{HTTP_HOST}   ^([^.]+)\.example\.net$
RewriteRule   (.*)           /%1/$1 [L]
```


----------



## mackattack (30. April 2007)

Hallo Gumbo,

vielen Dank für deine Antwort und sorry wegen crossposting auf modrewrite.de.

$1 liefert mir test.php zurück. Ich hab das jetzt zum Testen an eine php-Datei weiterleiten lassen:

```
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.tld$
RewriteRule (.*) test.php?a=%1&b=$1
```

ein var_dump auf $_GET gibt mir folgendes aus:

```
Array
(
    [a] => test
    [b] => test.php
)
```

Hast du vielleicht noch einen anderen Lösungsansatz, ich bin mit meinem latein definitiv am Ende angekommen. 

Gruß
mackattack


----------



## Gumbo (30. April 2007)

Wie sieht denn der Test-URL aus?


----------



## mackattack (30. April 2007)

Als Beispiel-URL nehme ich weiterhin die URL aus meinem ersten posting:
http://subdomain.domain.tld/artikel/kinderwagen *weiterleiten nach* http://www.domain.tld/subdomain/artikel/kinderwagen

Wobei die Anzahl der "gefakten" Ordnerstruktur nach der TLD auf kein maximum beschränkt ist.

Gruß
mackattack


----------



## Gumbo (30. April 2007)

Mein Fehler: die Ersatzadresse muss natürlich absolut sein:
	
	
	



```
RewriteCond   %{HTTP_HOST}   !^www\.example\.net$
RewriteCond   %{HTTP_HOST}   ^([^.]+)\.example\.net$
RewriteRule   (.*)           http://www.example.net/%1/$1 [L,R]
```


----------



## mackattack (30. April 2007)

Mh, so funktioniert es zwar, jedoch erzielt es noch nicht das gewünschte Ergebnis.
Mit deiner RewriteRule ändert sich die URL, ist es möglich, dass es bei der eingehenden URL bleibt und nur intern ein redirect stattfindet?


----------

