URL Redirection

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

Er zijn meerdere wegen die naar Rome leiden, en meerdere manieren om URL redirection oftewel URL forwarding te doen. Dit artikel behandelt redirection op Apache-niveau.

Casus: example.de → example.com/de

Hoe doe je een redirect van het ene domein naar een specifieke URL binnen een ander domein? Alleen example.de → example.com is simpel. Dit is een stap verder.

Brainstorm

  • Rechtstreeks redirect in een Apache Virtueel Hostbestand plaatsen?
  • mod_rewrite-module
  • mod_alias-module? Deze is beperkter dan mod_rewrite, en werkt altijd met een beginlocatie die zich binnen de document root van het betreffende domein moet beginnen. Maw.: mod_alias werkt alleen binnen een domeinnaam
  • .htaccess

Oplossing met .htaccess

RewriteCond %{HTTP_HOST}   ^(.*)example\.de(.*)$
RewriteRule ^(.*)          http://example.com/de/
  • Zonder http:// werkt het niet
  • Door de wildcards (.*) aan het begin en het eind van de RewriteConditie, worden alle subdomeinen en achtervoegsels genegeerd.

Oplossing met VirtualHost-bestand

Op de Apache .htaccess-tutorial-pagina wordt gezegd:

You should avoid using .htaccess files completely if you have access to httpd main server config file. 
Using .htaccess files slows down your Apache http server. Any directive that you can include in a 
.htaccess file is better set in a Directory block, as it will have the same effect with better 
performance.

De oplossing lijkt simpel: De statements uit het .htaccess-bestand verplaatsen naar het hoofd-directory block. Het werkte echter niet. Komt een andere keer.

Bronnen

Algemeen

Specifiek