PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   mod_reqrite mit %1 (https://www.php-resource.de/forum/php-developer-forum/78316-mod_reqrite-mit-1-a.html)

prego 22-11-2006 11:23

mod_reqrite mit %1
 
Hi,

ich schreib grad ne doch eher komplexe Rewrite Rule die erreichen soll, das alle Aufrufe auf einen VHost einer Domain auf einen bestimmtem umgeleitet werden.

Beispiel: www.ex-ample.de und www.example.de haben den gleichen Inhalt. www.ex-ample.de soll aber mit 301 auf www.example.de umgeleitet werden..

Code:

RewriteCond %{HTTP_HOST} !^www(\d?).example\.de$ [NC]
RewriteRule (.*) http://www%1.example.de/$1 [QSA,R=301,L]

Mein Problem nun - es gibt www1.ex-ample.de, www2.ex-ample.de etc - diese sollen natürlich entsprechend auf www1-example.de und www2.example.de umgeleitet werden.

Nun mien Problem:
Im Manual zu mod_rewrite steht
RewriteCond backreferences: These are backreferences of the form %N (1 <= N <= 9), which provide access to the grouped parts (again, in parentheses) of the pattern, from the last matched RewriteCond in the current set of conditions.

Wenn ich es richtig verstehe, kann ich doch dann in der RewriteRule durch %1 auf mein erstes Pattern aus der RewriteCond zugreifen. Aber %1 ist immer leer.

Kann mich jemand erleuchten? Thnx.



PS: Zur Not bitte verschieben - in Apache Installation passt das hier ja schlecht ;)

jahlives 22-11-2006 11:32

Aber du willst ja mit dieser Regel nur dann umschreiben, wenn keine Zahl drin vorkommt. Also ist auch () leer
Würde sagen works as designed...

Gruss

tobi

prego 22-11-2006 11:35

Hmm, versteh ich nicht ganz. Warum greift die Regel dann wenn ich www2.ex-ample.de aufrufe und leitet mich nach www.example.de um?

prego 22-11-2006 11:56

Ah jetzt ja :)

Wenn ich negiert suche wird das %1 nicht gefüllt.

Die Regel trifft ja "nicht" zu ;)

Code:

RewriteCond %{HTTP_HOST} ^www(\d?|-dev?) [NC]
RewriteCond %{HTTP_HOST} !example.de$ [NC]
RewriteRule (.*) http://www%1.example.de/$1 [QSA,R=301,L]

Noch Verbesserungsvorschläge?


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:24 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG