URL-Rewrite für kanonische URL über htaccess

Status
Für weitere Antworten geschlossen.

maneuss

Benutzer
Mitglied seit
04. Sep 2013
Beiträge
19
Punkte für Reaktionen
1
Punkte
3
Hallo,

ich habe ein Problem. Meine DS ist über zwei URLs erreichbar:

www.mneuss.de (die "offizielle" URL, über Strato gehostet, dynamische DNS, Mails auf Strato-Servern)
mneuss.dd-dns.de (zweite URL, damit Mails auch an die DS weitergesandt werden können, und als Sicherheit, falls Strato mal ausfällt)

Ich möchte nun, dass Apache automatisch mit der "offiziellen"/ kanonischen URL arbeitet.

Anscheinend ist das über mod_rewrite im htaccess-File möglich.
Auf der Apache Website fand ich folgenden Code (http://httpd.apache.org/docs/2.0/misc/rewriteguide.html)

# For sites running on a port other than 80
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{SERVER_PORT} !^80$
RewriteRule ^/(.*) http://www.example.com:%{SERVER_PORT}/$1 [L,R]

# And for a site running on port 80
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://www.example.com/$1 [L,R]

Hat jemand das schon implementiert, gibt es Anweisungen, Fallstricke, ....

Ich denke, ich muss das in einem htaccess-File auf jedem www-Ordner hinterlegen? Oder anders?


mfg mn
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
eine htaccess Datei legt man normalerweise direkt im obersten Verzeichnis (DocRoot) an. Die wird dann für alle Unterverzeichnisse auch angewandt. mod_rewrite sollte problemlos funzen auf der DS. Von dem her solltest du das genau so machen können wie du es vor hast
 

maneuss

Benutzer
Mitglied seit
04. Sep 2013
Beiträge
19
Punkte für Reaktionen
1
Punkte
3
eine htaccess Datei legt man normalerweise direkt im obersten Verzeichnis (DocRoot) an. Die wird dann für alle Unterverzeichnisse auch angewandt. mod_rewrite sollte problemlos funzen auf der DS. Von dem her solltest du das genau so machen können wie du es vor hast

danke für die antwort.
die frage für mich ist: wo ist eigentlich die document-root? ich vermute sehr stark, dass es mehrere gibt: den eigentlichen "web"-ordner und jeden einzelnen "www"-ordner in den benutzerverzeichnissen.
wenn ich das richtig sehe, dann muss in jedem dieser ordner ein htaccess stehen.

gruss mn
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
in /volume1/web ist der (Haupt)DocRoot für deinen Webserver. Die www Verzeichnisse in den Homes der User sind für die "persönlichen" Webseiten. Du brauchst sicher eine htaccess in /volume1/web ob du in den Userverzeichnissen auch welche brauchst musst du wissen ;-)
 

maneuss

Benutzer
Mitglied seit
04. Sep 2013
Beiträge
19
Punkte für Reaktionen
1
Punkte
3
ich habe das ganze auf einer testseite versucht. ziemlich deprimierend.

nach verschiedenen versuchen reichte schon ein .htaccess mit der einzigen anweisung "RewriteEngine on" aus, um den webserver aus dem tritt zu bringen. die seite wurde nicht mehr gefunden, obwohl kein rewrite tatsächlich stattgefunden hatte.
entweder MUSS immer ein rewrite stattfinden und das alleinige einschalten von mod_rewrite ist falsch, oder aber die ds kann mit dem rewrite nichts anfangen und hat es gar nicht oder fehlerhaft implementiert.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
wenn alleine das RewriteEngine on zu einem Fehler führt, dann hat der Server das mod_rewrite Modul wohl nicht geladen. Habe gerade keine DS zur Hand um das zu testen. Guck mal ob man im DSM dem Apache sagen kann welche Module er zu laden hat
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat