[Apache2] Redirect van URL

Pagina: 1
Acties:

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 14-02 18:33
Al een tijdje heb ik een '.net' domeinnaam geregistreerd. Heb volledige toegang tot de DNS records. Ik draai thuis via m'n ADSL lijn een Linux-machine met Apache2 er op (Debian-Linux als OS).

Werkt allemaal prima. Heb via name-based virtual hosts meerdere subdomeinen draaien (www.<domein>.net, webmail.<domein>.net en nog wat anderen)

Nou heb ik onlangs ook een '.com' domeinnaam geregistreerd en wil eigenlijk een volledige kopie van de .net domeinnaam en subdomeinen onder het .com-domein hebben (ofwel, www.<domein>.com moet hetzelfde zijn als www.<domein>.net). Domeinnaam in de browser adresbalk mag zichtbaar veranderen, hoeft niet.

De DNS-records van het .net-domein heb ik gekopieerd naar het .com-domein. De volgende stap leek mij om met de Apache module 'mod_rewrite' de URL automatisch aan te passen. En daar kom ik dus niet uit...

Sowieso weet ik niet zeker of de base-URL (dus alles tot en met '.com') rewritten kan worden. Hoe dan ook, ik wil het niet via .htaccess doen (dat werkte overigens wel) omdat ik het dan voor elk subdomein weer opnieuw moet doen, lijkt mij geen elegante oplossing. Doe ik m'n rewriterules echter in /etc/apache2/httpd.conf, dan lijkt het wel alsof ze niet gelezen worden:
code:
1
2
RewriteEngine on
RewriteRule ^/alice.html$ bob.html


Dezelfde regels in een .htaccess doen het wel (met dan wel AllowOverride All aangezet).

Vraag: wat is nou de meest simpele, elegante manier om het .net domein volledig te mirroren naar het .com domein, zodanig dat ik er in de toekomst niet meer over hoef na te denken en toekomstige subdomeinen automatisch mee gaan? Kan het via mod_rewrite en zo ja, wat doe ik fout? Of kan het nog simpeler?

  • Rac-On
  • Registratie: November 2003
  • Niet online
makkelijkste optie is om het .com domein gewoon als alias toe te voegen aan de bijbehorende v-host?
Voorbeeldje:
code:
1
2
3
4
5
6
<VirtualHost *:80>
  DocumentRoot /var/www/public/vogel
  ServerName *.domein.nl
  ServerAlias *.domein.nl
  ServerAlias *.domein.com
</VirtualHost>

[ Voor 108% gewijzigd door Rac-On op 25-06-2007 11:36 ]

doet niet aan icons, usertitels of signatures


  • eborn
  • Registratie: April 2000
  • Laatst online: 11-02 20:05
Inderdaad, gewoon een ServerAlias opnemen. De naam van het .com domein blijft dan wel in de adresbalk, maar daarmee kun je ook subdomeinen laten matchen (*.domein.com) en je hoeft geen 'ingewikkelde' rewrite te bouwen.

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 14-02 18:33
Hmmm... Die ServerAlias optie gewoon overheen gekeken, niet aan gedacht.

Op zich prima bruikbaar en eenvoudiger dan met rewriten. Enige minpunt is dat je bij toekomstige nieuwe subdomeinen je er weer aan moet denken. Vandaar ook dat ik zocht naar een meer globale setting of rewrite. Verder dus geen mogelijkheden?

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Dit topic past beter in het juiste subforum ;)

CSA > WSS

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • frickY
  • Registratie: Juli 2001
  • Laatst online: 13-02 10:32
Je kunt wel alle request rewriten met iets als;
code:
1
2
3
RewriteEngine On
RewriteCond %{HTTP_HOST} ^([a-z0-9][a-z0-9_-]+)\.domein\.com$
RewriteRule (.*) http://%1.domein.net/$1 [R=301,L]


In de RewriteCond match je op het domeinnaam, en sla je het variabele subdomein op in een variabele
In de RewriteRule sla je de gehele request_uri op in een variabele en gebruik je die samen met het subdomein om naar je andere domein te redirecten middels een 301 Moved Permanently HTTP header.

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 14-02 18:33
OK, begrijpelijk, maar werkt bij mij niet. Eigenlijk kom ik daarmee terug op een eerdere opmerking van mij:
Doe ik m'n rewriterules echter in /etc/apache2/httpd.conf, dan lijkt het wel alsof ze niet gelezen worden
Nou heb ik net nog eens wat meer gegoogled en kwam uiteindelijk hier terecht:
http://www.webservertalk.com/message1914554.html
... ofwel, het beschrijft precies mijn probleem en als oorzaak geeft iemand uiteindelijk:
Do notice Debian's default installation gives you Apache2 in
virtualhost-mode, having a single virtualhost enabled at
/etc/apache2/sites-enabled.

If any virtualhost is acive Apache2 apparantly ignores rewrite* directives
in the server configuration.
It is my understanding the rewriterule(s) need to be (re)applied (by
Include-ing another file) within each virtualhost defined in any of the
linked files at /etc/apache2/sites-enabled/.
Conclusie: de enige mogelijkheid is toch echt om het per subdomein/VirtualHost opnieuw in te stellen? Kan natuurlijk wel, maar beetje jammer wel...
Pagina: 1