Rewrite für lokalen Virtualhost

Alles, was den Apache betrifft, kann hier besprochen werden.

Rewrite für lokalen Virtualhost

Postby frankspade » 31. August 2009 21:34

Guten Tag,

ich möchte auf meinem Laptop Websites testen und sie aus Bequemlichkeit mit einem abgekürzten Namen aufrufen, aber dann doch die Site mit dem ganzen Namen angezeigt bekommen. Ich habe verschiedene Varianten von Rewrite-Rules ausprobiert, aber ohne Erfolg. Das ganze scheint etwas zu komplex für meine Kopf zu sein. Mag mir jemand helfen?

In /etc/hosts habe ich folgendes definiert:
Code: Select all
127.0.1.1   dub.me www.deruserbernd.me

In /etc/apache2/sites-available/www.deruserbernd.me habe ich folgendes definiert:
Code: Select all
<VirtualHost *:80>
    DocumentRoot /var/www/dub
    ServerName www.deruserbernd.me
    ServerAlias www.dub.me dub.me
    ServerPath /dub/
    <Directory /var/www/dub>
            AllowOverride All
    </Directory>
</VirtualHost>

Dann habe ich eine symbolischen Link darauf in /etc/apache2/sites-enabled gelegt und in der Dokumentroot /var/www/dub eine .htaccess mit diesem Inhalt angelegt:
Code: Select all
RewriteCond %{HTTP_HOST}   !^*\.dub\.me [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/(.*)         http://www.deruserbernd.me/$1 [L,R,NE]

Nach dem Restart des Servers und Aufruf von dub.me bekomme ich einen 500 Internal Server Error.

Im Serverlog steht:
[Mon Aug 31 22:17:41 2009] [alert] [client 127.0.1.1] /var/www/dub/.htaccess: RewriteCond: cannot compile regular expression '^*\\.dub\\.me'

Ich habe parallel auch den Virtualhost ohne www angelegt, aber mit dem gleichen Ergebnis.

Da ich nur zum Teil verstehe, was ich hier mache, ist die Fehlersuche für mich ein Glücksspiel.

Ich bitte um Hilfe.
Last edited by frankspade on 01. September 2009 12:41, edited 2 times in total.
frankspade
 
Posts: 6
Joined: 31. August 2009 20:54

Re: Rewrite für lokalen Virtualhost

Postby Wiedmann » 31. August 2009 23:20

Würdest du bitte deinen opbigen Post bearbeiten und:
a) jeden Dateiinhalt separat in <code> Tags setzten.
b) und danach die wohl umgewandelten URI korrigieren.

Und wenn dann alles stimmt, nochmal eine Antwort mit der "Erledigt" Meldung posten.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Rewrite für lokalen Virtualhost

Postby frankspade » 01. September 2009 07:00

Code-Auszeichnung erledigt, die Frage ist weiter offen ...
frankspade
 
Posts: 6
Joined: 31. August 2009 20:54

Re: Rewrite für lokalen Virtualhost

Postby Wiedmann » 01. September 2009 10:34

Code: Select all
RewriteCond %{HTTP_HOST}   !^*\.dub\.me [NC]

Code: Select all
RewriteCond %{HTTP_HOST}   !^www\.deruserbernd\.me [NC]


Code: Select all
RewriteRule ^/(.*)         http://www.deruserbernd.me/$1 [L,R,NE]

Code: Select all
RewriteRule ^(.*)         http://www.deruserbernd.me/$1 [L,R,NE]


Code: Select all
127.0.1.1   dub.me http://www.deruserbernd.me

Code: Select all
127.0.1.1   dub.me www.dub.me www.deruserbernd.me


Code: Select all
ServerName http://www.deruserbernd.me

Code: Select all
ServerName www.deruserbernd.me


Code: Select all
ServerAlias http://www.dub.me dub.me

Code: Select all
ServerAlias www.dub.me dub.me
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Rewrite für lokalen Virtualhost

Postby frankspade » 01. September 2009 14:03

Danke Wiedmann.

Beim Editieren, waren automatisch die http:// in den Code eingefügt worden, sie waren aber nicht wirklich da. Sorry!

Ich habe deine Rückmeldung versucht zu verstehe, bin aber nicht sicher, ob mir das komplett gelungen ist. Meine Virtualhostdefinition sieht jetzt so aus:
Code: Select all
<VirtualHost *:80>
    DocumentRoot /var/www/dub
    ServerName deruserbernd.me
    ServerAlias www.dub.me dub dub.me
    ServerPath /dub/
    AddType text/html .htm

    RewriteEngine on
    RewriteCond %{HTTP_HOST}   !^*\.dub\.me [NC]
    RewriteCond %{HTTP_HOST}   !^www\.deruserbernd\.me [NC]
    RewriteRule ^(.*)          http://www.deruserbernd.me/$1 [L,R,NE]

    RewriteLog "/var/log/apache2/rewrite_log"
    RewriteLogLevel 9 

    <Directory /var/www/dub>
            AllowOverride All
    </Directory>
</VirtualHost>


Wenn ich Apache neu starte erhalte ich die Fehlermeldung: cannot compile regular expression '^*\\.dub\\.me' Wenn ich die Zeile auskommentiere geht es.

Die Site lässt sich mit den verschiedenen Aliases aufrufen, allerdings wird ein / zuviel eingefügt, d.h. aus dub/user wird http://www.deruserbernd.me//user

Wenn ich
Code: Select all
    RewriteRule ^(.*)          http://www.deruserbernd.me/$1 [L,R,NE]
zu
Code: Select all
    RewriteRule ^(.*)          http://www.deruserbernd.me$1 [L,R,NE]
ändere, wird der richtige URL erzeugt, aber die Site nicht gefunden (statt dessen wird die Defaultsite aufgerufen).

Um besser zu verstehen, was hier abläuft habe ich in der Virtualhost-Definition RewriteLogLevel auf 9 gesetzt. Das Log wurde angelegt, aber nichts wird hinein geschrieben.

Ich habe versucht die Dokumentationen zu verstehen, aber mir fehlt's bei mir noch ...
frankspade
 
Posts: 6
Joined: 31. August 2009 20:54

Re: Rewrite für lokalen Virtualhost

Postby Wiedmann » 01. September 2009 14:25

Beim Editieren, waren automatisch die http:// in den Code eingefügt worden, sie waren aber nicht wirklich da. Sorry!

Deswegen erst die code Tags setzten, und dann bei einem 2. Editieren die http:// rausmachen.

ob mir das komplett gelungen ist.

Nicht ganz. Immer genau die Zeile in dem Zitat komplett durch die im Code darunter ersetzten.

Meine Virtualhostdefinition sieht jetzt so aus:

Du hast aber vorher geschrieben, dass du das in einer ".htaccess" hast
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Rewrite für lokalen Virtualhost

Postby frankspade » 01. September 2009 19:04

Danke Wiedmann,

ich habe inzwischen gelernt, dass es nicht unbedingt von Vorteil ist eine .htaccess-Datei zu haben, wenn sich das Gleiche auch anders lösen lässt. Darum habe ich die Rewriterules in den VirtuelHosts-File getan.

Ich habe jetzt darauf geachtet die Zeilen genau zu ersetzen. Es funktioniert tatsächlich besser, außer wenn ich die Domain ohne "Argument" aufrufe, also z.B. dub.me, dann habe ich am Ende immer zwei Schrägstriche (http://www.deruserbernd.me//) und die Serverroot wird nicht gefunden.

Wenn ich ein Argument angebe wird kein / angefügt!

So sieht mein Virtualhostfile jetzt aus:
Code: Select all
<VirtualHost *:80>
    DocumentRoot /var/www/dub
    ServerName www.deruserbernd.me
    ServerAlias www.dub.me dub dub.me deruserbernd.me
    ServerPath /dub/
    AddType text/html .htm

    RewriteEngine on
    RewriteCond %{HTTP_HOST}   !^www\.deruserbernd\.me [NC]
    RewriteRule ^(.*)          http://www.deruserbernd.me/$1 [L,R,NE]

    RewriteLog "/var/log/apache2/rewrite_log"
    RewriteLogLevel 9 

    <Directory /var/www/dub>

            AllowOverride All

    </Directory>

</VirtualHost>

Woran kann es liegen, dass ich keine Einträge im rewrite_log habe?

Ich bin etwas verwundert, dass der ServerName mit www anfängt, muss die Virtualhostsdatei genauso heißen? Offensichtlich funktioniert es auch ohne ...

Herzlichen Gruß

Frank
frankspade
 
Posts: 6
Joined: 31. August 2009 20:54

Re: Rewrite für lokalen Virtualhost

Postby Wiedmann » 01. September 2009 19:26

ich habe inzwischen gelernt, dass es nicht unbedingt von Vorteil ist eine .htaccess-Datei zu haben, wenn sich das Gleiche auch anders lösen lässt. Darum habe ich die Rewriterules in den VirtuelHosts-File getan.

Nur das "mein" Code so nur in einer ".htceess" tut, aber nicht in einer VirtulHost Config...

Jetzt musst du diese Zeile:
Code: Select all
RewriteRule ^(.*)          http://www.deruserbernd.me/$1 [L,R,NE]

ändern in:
Code: Select all
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/(.*)         http://www.deruserbernd.me/$1 [L,R,NE]


Ich bin etwas verwundert, dass der ServerName mit www anfängt

Na wenn du das so in die Datei schreibst, fängt der auch so an? Allerdings wolltest du das ja auch so haben deinem ersten Post nach. Oder meinst du irgendwas ganz anderes?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Rewrite für lokalen Virtualhost

Postby frankspade » 01. September 2009 20:05

Danke Wiedmann,

das ist perfekt! Und oh Wunder, jetzt wird auch das rewrite_log bedient.

Soweit ganz herzlichen Dank. Da bin ich ein ganzes Stück weiter gekommen.

Wegen dem Servernamen, bin ich nicht sicher, welche Konsequenz es hat, ob ich ihn mit oder ohne www. benenne. Ich dachte vor der Domain steht der Name der Subdomain und www ist der Defaultname, wenn keine Subdomain angesprochen wird, und sollte dann der Name der Virtualhostdatei nicht genauso heißen?

Herzlichen Gruß

Frank
frankspade
 
Posts: 6
Joined: 31. August 2009 20:54

Re: Rewrite für lokalen Virtualhost

Postby Wiedmann » 01. September 2009 20:21

bin ich nicht sicher, welche Konsequenz es hat, ob ich ihn mit oder ohne www. benenne.

Apache-seitig ist das bei /deiner/ Konfiguration Jacke wie Hose. (Genauso wie du die Datei auch "hanswurst.conf" nennen kannst). Für dich (als Mensch) dürfte es allerdings einfacher sein, diese korrekt zu bennen um sie besser auseinander halten zu können und um hinterher auch noch zu sehen was du eigentlich wolltest.
Der Apache reagiert halt in diesem VHost auf alles was in ServerName bzw. ServerAlias aufgeführt ist.

Ich dachte vor der Domain steht der Name der Subdomain und www ist der Defaultname, wenn keine Subdomain angesprochen wird.

Also genau genommen (und Standard) ist bei "www.deruserbernd.me": "deruserbernd" eine Subdomain in der Domain "me", und "www" ist ein Rechner/Host in der Subdomain "deruserbernd".
Das man auch "deruserbernd.me" benutzen kann liegt nur daran, weil man mittlerweile oft auch einen Host/Rechner "deruserbernd" in der Domain "me" einrichtet (oder einen entsprechenden Alias).
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Rewrite für lokalen Virtualhost

Postby frankspade » 01. September 2009 20:25

Lieber Wiedmann,

comprende ...

Danke, dass du dir so viel Mühe mit mir gemacht hast. Ich weiß es sehr zu schätzen.

Herzlichen Gruß

Frank
frankspade
 
Posts: 6
Joined: 31. August 2009 20:54


Return to Apache

Who is online

Users browsing this forum: No registered users and 31 guests