You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Marcus Franke <ma...@gmx.net> on 2005/05/23 18:20:30 UTC

rewrite Frage

Moin,

ich habe einen virtuellen host und die folgende Optionen
dafür gesetzt:

NameVirtualHost 192.168.1.1:80

Im DNS habe ich für die 192.168.1.1 auf die Domain einen CatchAll
Eintrag, so dass ich im Grunde mit:

http://*.domain.tld/

immer in meinem default virtualhost rauskomme.

Soweit, so gut, ich will nun aber ein paar der möglichen Namen davon zu 
Testzwecken z.B. per

RedirectPermanent /path http://www.andere.domain/path

umleiten. Allerdings lande ich permanent weiterhin in meinem
virtuellen Host, obwohl ich eigentlich laut Doku mit einem
301er Redirect in der anderen Domain landen müsste.

Meine .htaccess sieht wiefolgt aus:

RewriteEngine on
RedirectPermanent /test http://www.2server.tld/test

2server.tld kann im DNS auch aufgelöst werden und es der
apache hat einen funktionierenden virtuellen host für diesen
Eintrag. Sprich, wenn ich direkt auf das Teil surfe, klappt
alles. Wenn ich meinen Redirect nutzen will, geht nix :(

Das error logfile ist auch blank, bzw. gibt nichts verwertbares
her :(

Mir gehen gerade die Ideen aus, woran es noch liegen könnte.

Ich befolge im Grunde nur die Anleitung auf der folgenden Seite:
http://www.gnc-web-creations.com/301-redirect.htm


Marcus

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: rewrite Frage

Posted by Marcus Franke <ma...@gmx.net>.
Frank Thommen wrote:

> Bei uns gabs mehrmals Probleme, weil sich mod_alias und mod_rewrite in
> die Quere kamen ("Alias"-Direktiven wurden schlichtweg ignoriert, weil
> die URLs schon vorher per Rewrite umgeschrieben worden waren.  Die
> Reihenfolge im *.conf war dabei unerheblich).  Mir ist nicht klar, in
> welcher Reihenfolge die Module aufgerufen werden.  Vielleicht ist das
> auch bei Dir ein moeglicher Problempunkt?
Dazu stand glaub ich was in der Dokumentation von mod_rewrite. Das modul
ist an zwei hooks gebunden und wird sehr früh ausgewertet. Früher als
mod_alias auf jeden Fall..


>>Das error logfile ist auch blank, bzw. gibt nichts verwertbares
>>her :(
> 
> 
> Was sagt das RewriteLog?
> 
Leer, da es sich um Direktiven aus mod_alias handelt..
Da keine Direktiven aus mod_rewrite aufgerufen wurden, konnten die
auch nichts loggen :)


Marcus

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: rewrite Frage

Posted by Frank Thommen <ft...@inf.ethz.ch>.
Hallo Marcus,

> Meine .htaccess sieht wiefolgt aus:
> 
> RewriteEngine on
> RedirectPermanent /test http://www.2server.tld/test
>
> 2server.tld kann im DNS auch aufgelöst werden und es der
> apache hat einen funktionierenden virtuellen host für diesen
> Eintrag. Sprich, wenn ich direkt auf das Teil surfe, klappt
> alles. Wenn ich meinen Redirect nutzen will, geht nix :(
> 

Hmm.  Vielleicht habe ich da etwas falsch verstanden oder uebersehen,
aber fuer Redirect (mod_alias) brauchst Du kein Rewrite (mod_rewrite).

Bei uns gabs mehrmals Probleme, weil sich mod_alias und mod_rewrite in
die Quere kamen ("Alias"-Direktiven wurden schlichtweg ignoriert, weil
die URLs schon vorher per Rewrite umgeschrieben worden waren.  Die
Reihenfolge im *.conf war dabei unerheblich).  Mir ist nicht klar, in
welcher Reihenfolge die Module aufgerufen werden.  Vielleicht ist das
auch bei Dir ein moeglicher Problempunkt?


> Das error logfile ist auch blank, bzw. gibt nichts verwertbares
> her :(

Was sagt das RewriteLog?

frank

-- 
Frank Thommen
System Management & Support                        +41 44 63 27208
Inst. of Computational Science ETH            fthommen@inf.ethz.ch
ETH Zentrum / HRS, CH-8092 Zuerich       www.inf.ethz.ch/~fthommen

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: rewrite Frage

Posted by Paul Puschmann <ln...@uzulabs.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Marcus Franke wrote:
> Paul Puschmann wrote:
> 
>>>
>>> Mir gehen gerade die Ideen aus, woran es noch liegen könnte.
>>>
>>> Ich befolge im Grunde nur die Anleitung auf der folgenden Seite:
>>> http://www.gnc-web-creations.com/301-redirect.htm
>>>
>>>
>>> Marcus
>>
>>
>> Bis du dir denn sicher, dass du überhaupt rewrite nutzen musst?
>> Hast du es schon einmal mit Named-Virtualhosts probiert?
>>
>> Paul
> 
> Ja, recht sicher, es geht darum, dass sich Seiten und Domains
> verschoben haben, deshalb auch Redirect mit Code 301 (permanent
> move).
> 
Aha, das habe ich wohl nicht so aus deiner Mails gelesen.

> Was würde es bringen einfach nur die VirtualHosts mit Namen
> anzugeben? Dann hätte ich noch immer alte Subdomains und deren
> Content in neuen Domains unabhängig davon wie ich die
> vhosts identifiziere.
Dann könntest du für jede Subdomain einen entsprechenden Eintrag machen.
Aber das könnte dann unübersichtlich werden.

Wie sieht es denn hiermit aus: redirect 301 / http://www.you.com/
gefunden hier:
http://www.tamingthebeast.net/articles3/spiders-301-redirect.htm
oder
http://httpd.apache.org/docs-2.0/mod/mod_alias.html

Damit hättest du schon mal den Redirect. Rewrite ist dann natürlich die
Premium-Version.
http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html

Paul
- --
Linux-User #271918 with the Linux Counter, http://counter.li.org/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (MingW32)

iEYEARECAAYFAkKTC58ACgkQqErKtBWD7VRLswCg1J/AGp9/PDX6l6I5PnC3sciC
ziMAnR9d2IdWWR/oFFdr9XgC+O3izmPp
=Qqr1
-----END PGP SIGNATURE-----


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: rewrite Frage

Posted by Marcus Franke <ma...@gmx.net>.
Paul Puschmann wrote:

>>
>>Mir gehen gerade die Ideen aus, woran es noch liegen könnte.
>>
>>Ich befolge im Grunde nur die Anleitung auf der folgenden Seite:
>>http://www.gnc-web-creations.com/301-redirect.htm
>>
>>
>>Marcus
> 
> Bis du dir denn sicher, dass du überhaupt rewrite nutzen musst?
> Hast du es schon einmal mit Named-Virtualhosts probiert?
> 
> Paul

Ja, recht sicher, es geht darum, dass sich Seiten und Domains
verschoben haben, deshalb auch Redirect mit Code 301 (permanent
move).

Was würde es bringen einfach nur die VirtualHosts mit Namen
anzugeben? Dann hätte ich noch immer alte Subdomains und deren
Content in neuen Domains unabhängig davon wie ich die
vhosts identifiziere.


Marcus

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: rewrite Frage

Posted by Paul Puschmann <ln...@uzulabs.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Marcus Franke wrote:
> Moin,
> 
> ich habe einen virtuellen host und die folgende Optionen
> dafür gesetzt:
> 
> NameVirtualHost 192.168.1.1:80
> 
> Im DNS habe ich für die 192.168.1.1 auf die Domain einen CatchAll
> Eintrag, so dass ich im Grunde mit:
> 
> http://*.domain.tld/
> 
> immer in meinem default virtualhost rauskomme.
> 
> Soweit, so gut, ich will nun aber ein paar der möglichen Namen davon zu
> Testzwecken z.B. per
> 
> RedirectPermanent /path http://www.andere.domain/path
> 
> umleiten. Allerdings lande ich permanent weiterhin in meinem
> virtuellen Host, obwohl ich eigentlich laut Doku mit einem
> 301er Redirect in der anderen Domain landen müsste.
> 
> Meine .htaccess sieht wiefolgt aus:
> 
> RewriteEngine on
> RedirectPermanent /test http://www.2server.tld/test
> 
> 2server.tld kann im DNS auch aufgelöst werden und es der
> apache hat einen funktionierenden virtuellen host für diesen
> Eintrag. Sprich, wenn ich direkt auf das Teil surfe, klappt
> alles. Wenn ich meinen Redirect nutzen will, geht nix :(
> 
> Das error logfile ist auch blank, bzw. gibt nichts verwertbares
> her :(
> 
> Mir gehen gerade die Ideen aus, woran es noch liegen könnte.
> 
> Ich befolge im Grunde nur die Anleitung auf der folgenden Seite:
> http://www.gnc-web-creations.com/301-redirect.htm
> 
> 
> Marcus
Bis du dir denn sicher, dass du überhaupt rewrite nutzen musst?
Hast du es schon einmal mit Named-Virtualhosts probiert?

Paul
- --
Linux-User #271918 with the Linux Counter, http://counter.li.org/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (MingW32)

iEYEARECAAYFAkKS154ACgkQqErKtBWD7VSZCQCdE3G49bHDqWmKqTe5R4qBj2ca
/J0An1dXs3esx6ZcnHLeNA+Uhc9tduHb
=kxiZ
-----END PGP SIGNATURE-----


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: AW: rewrite Frage [solved]

Posted by Ren� Thiel <re...@rennkuckuck.de>.
> Wie kriege ich eine Negation in die Abfrage, dass zwar
> weiterhin die .htm Dateien umgeleitet werden, allerdings
> die speziellen nicht?

Beispielsweise:
RewriteCond %{REQUEST_URI}  !(.*).css


Gruß
René Thiel (Rennkuckuck)
mailto:reti@rennkuckuck.de
--
http://rennkuckuck.de - Die Rumänien-Seiten
http://karpatenferien.de - Ferien in Rumänien!!!

Geld überweisen nach Rumänien?
Günstiger geht's nicht:
https://www.moneybookers.com/app/?rid=917056






--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: AW: rewrite Frage [solved]

Posted by Frank Thommen <ft...@inf.ethz.ch>.
Hallo Marcus,

> RedirectMatch permanent (.*)\.htm$ http://www.srv.tld$1.htm
> 
> [...]
> 
> Wie kriege ich eine Negation in die Abfrage, dass zwar
> weiterhin die .htm Dateien umgeleitet werden, allerdings
> die speziellen nicht?


Wieder auf mod_rewrite umsteigen und eine Tabelle verwenden:

----
RewriteEngine on
RewriteMap nichtumleiten txt:/pfad/zu/nichtumleiten

RewriteCond ${nichtumleiten:$REQUEST_URI|0} != '1'
RewriteRule .* http://www.srv.tld$1 [R=301]
-----


/pfad/zu/nichtumleiten:

-----
/diese/url/nicht/umleiten.htm  1
/und/auch/diese/nicht.htm      1
/chef/wechseln.htm             1
-----

oder so aehnlich :-)

   frank

-- 
Frank Thommen
System Management & Support                        +41 44 63 27208
Inst. of Computational Science ETH            fthommen@inf.ethz.ch
ETH Zentrum / HRS, CH-8092 Zuerich       www.inf.ethz.ch/~fthommen

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: AW: rewrite Frage [solved]

Posted by Marcus Franke <Ma...@gmx.net>.
Obwohl,

eine Frage habe ich noch :)

Ich nutze jetzt erfolgreich ein:

RedirectMatch permanent (.*)\.htm$ http://www.srv.tld$1.htm

um alle html files aus dem vhost umzuleiten. Funktioniert
soweit auch sehr gut. Nun ist mein Chef auch noch auf die
Idee gekommen einige dieser Files doch nicht umleiten zu
wollen.

Wie kriege ich eine Negation in die Abfrage, dass zwar 
weiterhin die .htm Dateien umgeleitet werden, allerdings
die speziellen nicht?


Marcus

-- 
pedo mellon a minno

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


RE: AW: rewrite Frage [solved]

Posted by Marcus Reimann <Ma...@reimann-systemberatung.de>.
Hallo Marcus,

>weiss zwar nicht so genau, warum es jetzt klappt, aber es funktioniert
>jetzt seit ich die Redirect Regel aus der .htaccess in den vhost
>geholt habe.

Dann war AllowOverride nicht korrekt gesetzt.

>RedirectMatch, Redirect, RedirectPermanent sind vor allem auch
>Direktiven, die aus der mod_alias stammen, wie mir inzwischen aufge-
>gangen ist..

Ja, war mir gar nicht aufgefallen. Bei mod_rewrite müsste die
Konfiguration korrekterweise folgendermaßen lauten:

RewriteEngine on
RewriteBase /test
RewriteRule ^(.*)$ http://www.2server.tld/$1 [R=301,L]

>> Damit Du überhaupt mod_rewrite in der .htaccess-Datei
>> einsetzen kannst, muß dazu AllowOverride in der httpd.conf
>> korrekt gesetzt sein.
>Hmm, gilt das für .htaccess Dateien generell?
>Das würde erklären, warum es dann jetzt im vhost auch läuft.

Das gilt nur für mod_rewrite, da RewriteBase eine Direktive
von mod_rewrite ist.

Gruß
 Marcus Reimann
 M. Reimann Systemberatung
 http://www.reimann-systemberatung.de


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: AW: rewrite Frage [solved]

Posted by Marcus Franke <ma...@gmx.net>.
Marcus Reimann wrote:
> Hallo Marcus,
> 
> 
>>Meine .htaccess sieht wiefolgt aus:
>>
>>RewriteEngine on
>>RedirectPermanent /test http://www.2server.tld/test
> 
> 
> Wenn Du dies innerhalb einer .htaccess-Datei nutzen
> möchtest, mußt Du noch ein RewriteBase unterhalb von
> RewriteEngine einfügen:
> 
> RewriteEngine on
> RewriteBase /test
> RedirectPermanent /test http://www.2server.tld/test
> 

Hi,

weiss zwar nicht so genau, warum es jetzt klappt, aber es funktioniert
jetzt seit ich die Redirect Regel aus der .htaccess in den vhost
geholt habe.

RedirectMatch, Redirect, RedirectPermanent sind vor allem auch
Direktiven, die aus der mod_alias stammen, wie mir inzwischen aufge-
gangen ist..

Allerdings, laut mod_alias Doku, können diese Befehle auch in einer
.htaccess Datei hinterlegt werden. Wobei diese, wie geschrieben
bei mir nicht funktioniert hat.

Interessant ist auch, ein reload des Apache hat den vhost nicht
neu geladen. Erst ein echter Restart hat mein RedirectMatch
in der vhost Konfiguration aktiv werden lassen.

> Damit Du überhaupt mod_rewrite in der .htaccess-Datei
> einsetzen kannst, muß dazu AllowOverride in der httpd.conf
> korrekt gesetzt sein.
Hmm, gilt das für .htaccess Dateien generell?
Das würde erklären, warum es dann jetzt im vhost auch läuft.

Werde mir die Links gleich mal ansehen.


Danke!
Marcus

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


AW: rewrite Frage

Posted by Marcus Reimann <Ma...@reimann-systemberatung.de>.
Hallo Marcus,

>Meine .htaccess sieht wiefolgt aus:
>
>RewriteEngine on
>RedirectPermanent /test http://www.2server.tld/test

Wenn Du dies innerhalb einer .htaccess-Datei nutzen
möchtest, mußt Du noch ein RewriteBase unterhalb von
RewriteEngine einfügen:

RewriteEngine on
RewriteBase /test
RedirectPermanent /test http://www.2server.tld/test

Doku zu RewriteBase:
http://httpd.apache.org/docs/mod/mod_rewrite.html#RewriteBase

Damit Du überhaupt mod_rewrite in der .htaccess-Datei
einsetzen kannst, muß dazu AllowOverride in der httpd.conf
korrekt gesetzt sein.

Doku zu AllowOverride:
http://httpd.apache.org/docs/mod/core.html#allowoverride

Gruß
 Marcus Reimann
 M. Reimann Systemberatung
 http://www.reimann-systemberatung.de



--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------