Toon posts:

Apache mod_rewrite probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Feiten:

Ik draai een apache webserver:
http://intranet.local

Er is een (andere) DNS server die ervoor zorgt dat het IP adres wordt omgezet naar intranet.local

Iedere gebruiker heeft zijn eigen "site":
http://intranet.local/~gebruiker/

De leesbare files van een gebruiker staan op /home/user/public_html

Nu wil ik daarvan maken:
http://gebruiker.intranet.local

Ik heb dit geprobeerd met mod_rewrite:

RewriteEngine on
RewriteCond %{HTTP_HOST} [^.]+\.host\.com$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule [^.]+)\.host\.com(.*) /home/$1$2

Probleem
Tja... werkt dus niet.
Weet iemand hoe ik voor mekaar krijg?
Moeten er ook records worden aangemaakt op de DNS server?

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 19:32

Kees

Serveradmin / BOFH / DoC
De DNS server moet in principe alleen * ook doorsturen naar de webserver.
(zodat: randomnaam.intranet.local geen lookup-fout geeft maar wordt doorgestuurd naar de webserver)

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • Fatal-Error
  • Registratie: Juli 2001
  • Niet online
Heb je username.intranet.local ook in de dns opgenomen?

Welcome to the desert of the real.


Verwijderd

Topicstarter
Fatal-Error: ja

  • Fatal-Error
  • Registratie: Juli 2001
  • Niet online
Ik heb geen ervaring met de rewriting module, maar probeer onderstaande eens (onderste regel is ietwat aangepast):
RewriteEngine on
RewriteCond %{HTTP_HOST} [^.]+\.host\.com$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+)\.host\.com(.*) /home/$1/public_html$2

[ Voor 0% gewijzigd door Fatal-Error op 05-09-2002 18:09 . Reden: wat is eest had bedacht klopte niet ]

Welcome to the desert of the real.


Verwijderd

wat zegt '{host, nslookup} <randomnaam>.intranet.local'

Verwijderd

Topicstarter
Voor de mensen die het intereseert.... (kennis delen maakt elkaar sterk, nietwaar?)
Gevonden (werkende) oplossing:

info:
hostname = veranderen in de naam van de linuxbak (moet ook in de DNS server staan!)
intranet.local = veranderen in je eigen domain.com (of whatever..)
locatie van de www files in homedirs van gebruikers = /home/<<gebruiker>>/public_html

levert: <<gebruiker>>.domain.com i.p.v hostname.domain.com/~<<gebruiker>>

Dit alles zonder dat je in je DNS server hoeft te prutsen.
Best handig toch?

Het volgende plaatsen in httpd.conf:

RewriteMap lowercase int:tolower
RewriteEngine on

RewriteCond ${lowercase:%{HTTP_HOST}} !^$
RewriteCond ${lowercase:%{HTTP_HOST}} !^hostname\.intranet.local$

RewriteCond ${lowercase:%{HTTP_HOST}} ^(hostname\.|)([^.]+)\.intranet\.local$
RewriteRule ^(.+) ${lowercase:%{HTTP_HOST}}$1 [C]
RewriteRule ^(hostname\.|)([^.]+)\.intranet\.local(.*) /homedir/$2/public_html/$3 [L]
Pagina: 1