Avatar billede sjh Nybegynder
02. august 2006 - 04:56 Der er 23 kommentarer og
1 løsning

VirtualHost måske RewriteRule

Jeg bruger denne stump (copy/paste) til alle mine domæner / sub (pt. 25 stk)

<VirtualHost *:80>
  ServerAdmin none@none.dk
  DocumentRoot "D:/Programmer/Apache/htdocs/subnavn.domain.dk"
  ServerName subnavn.domain.dk
  ServerAlias www.subnavn.domain.dk
</VirtualHost>


Min ide var så at lave noget i den stil.. så jeg bare skal lave et bibliotek under "D:/Programmer/Apache/htdocs/(*)"

(*) = <biblioteknavn>

<VirtualHost *:80>
  ServerAdmin none@none.dk
  DocumentRoot "D:/Programmer/Apache/htdocs/(*).domain1.dk"
  ServerName (*)domain1.dk
  ServerAlias www.(*).domain1.dk
</VirtualHost>

<VirtualHost *:80>
  ServerAdmin none@none.dk
  DocumentRoot "D:/Programmer/Apache/htdocs/(*).domain2.dk"
  ServerName (*)domain2.dk
  ServerAlias www.(*).domain2.dk
</VirtualHost>


Hvordan får jeg det til at funke..? (Bruger Apache 1.3)
Avatar billede fixxxer Nybegynder
03. august 2006 - 10:46 #1
Du vil altså have en måde, hvorpå du nemt kan udskifte wildcardet foran dine 2 domæner?

Det tætteste du kommer på det, er ved hjælp af et 3. parts modul, mod_macro

http://www.cri.ensmp.fr/~coelho/mod_macro/mod_macro/mod_macro.html
Avatar billede sjh Nybegynder
03. august 2006 - 12:21 #2
Har næsten fået det til at virke med "mod_vhost_alias" :

http://httpd.apache.org/docs/1.3/mod/mod_vhost_alias.html

LoadModule vhost_alias_module modules/mod_vhost_alias.so
AddModule mod_vhost_alias.c

UseCanonicalName Off

<VirtualHost *:80>
  ServerAdmin none@none.dk
  VirtualDocumentRoot D:/Programmer/Apache/htdocs/%0
</VirtualHost>


kan bare ikke få den til at virke med "www" ServerAlias www.(*).domain2.dk
Avatar billede sjh Nybegynder
03. august 2006 - 12:37 #3
Nu tror jeg det virke.. nu kan jeg bare lave et bibliotek under D:/Programmer/Apache/htdocs/

fx. test -> D:/Programmer/Apache/htdocs/test
den vil så være test.domain1.dk / test.domain2.dk


# subdomæne
<VirtualHost *:80>
  ServerAdmin none@none.dk
  VirtualDocumentRoot D:/Programmer/Apache/htdocs/%0
</VirtualHost>

# domæne1 (for at få ServerAlias på (www))
<VirtualHost *:80>
  ServerAdmin none@none.dk
  DocumentRoot "D:/Programmer/Apache/htdocs/domain1.dk"
  ServerName domain1.dk
  ServerAlias www.domain1.dk
</VirtualHost>

# domæne2 (for at få ServerAlias på (www))
<VirtualHost *:80>
  ServerAdmin none@none.dk
  DocumentRoot "D:/Programmer/Apache/htdocs/domain2.dk"
  ServerName domain2.dk
  ServerAlias www.domain2.dk
</VirtualHost>


Hvis der er nogle som har et bedre forslag så kom bare med det.
Avatar billede sjh Nybegynder
03. august 2006 - 12:40 #4
Nej det var sådan :D

fx. test.domain1.dk -> D:/Programmer/Apache/htdocs/test.domain1.dk
den vil så være test.domain1.dk

:D
Avatar billede fixxxer Nybegynder
03. august 2006 - 13:19 #5
vhost_alias er netop det, aliaser. Det er ikke ægte virtual hosts, så de har ikke samme funktionalitet som et selvstændigt VirtualHost setup.
Avatar billede sjh Nybegynder
03. august 2006 - 13:24 #6
ubs nej.. æv..

$_SERVER["DOCUMENT_ROOT"] -> D:/Programmer/Apache/htdocs og ikke D:/Programmer/Apache/htdocs/test
Avatar billede fixxxer Nybegynder
03. august 2006 - 13:40 #7
Lige præcis..

Du kommer ikke udenom at have en VirtualHost konfiguration for hver enkel domæne/subdomæne. Det kan enten gøres med mod_macro eller ved at skrive hver VirtualHost manuelt. Her kan du dog lave et lille trick:


Fjern alle VirtualHosts fra din httpd.conf, og indsæt i stedet følgende:

include "D:/Programmer/Apache/conf/sites/*.conf"

Nu vil Apache finde alle *.conf filer i mappen D:/Programmer/Apache/conf/sites/ og bruge dem i konfigurationen.

Fx ville D:/Programmer/Apache/conf/sites/test.domæne.com.conf indeholde:

<VirtualHost *:80>
  ServerAdmin none@none.dk
  DocumentRoot "D:/Programmer/Apache/htdocs/test.domain1.dk"
  ServerName test.domain1.dk
</VirtualHost>

Og en tilsvarende til D:/Programmer/Apache/conf/sites/test2.domæne.com.conf og så fremdeles..
Avatar billede sjh Nybegynder
03. august 2006 - 13:41 #8
ahh kan jeg ikke fix det sådan..

auto_prepend_file = "C:\php\...\AutoPrependFile.php"

$_SERVER["DOCUMENT_ROOT"] .= $_SERVER["SERVER_NAME"]."/";
Avatar billede sjh Nybegynder
03. august 2006 - 13:44 #9
fixxxer 03/08-2006 13:40:58 det var jo også sådan jeg altid har gjordt.. men så skal jeg genstarte apache
Avatar billede fixxxer Nybegynder
03. august 2006 - 13:47 #10
Jo men det løser kun et hjørne af problemet. Under en normal VirtualHost kan du i din HTML linke til andre elementer i dokument roden ved at skrive href="/images/dims.jpg" (det er praktisk hvis man bruger mod_rewrite til at omskrive URL'er)
Det virker heller ikke med vhost_alias.

.. og sådan er der flere andre ting, som har gjort at jeg valgte vhost_alias løsningen fra, og i stedet har en konfigurationsfil-del til hver af mine VirtualHosts.

Hvor mange subdomæner har du tænkt dig at hoste?
Avatar billede fixxxer Nybegynder
03. august 2006 - 13:48 #11
Er det et problem at du bliver nødt til at genstarte Apache?
Avatar billede sjh Nybegynder
03. august 2006 - 14:05 #12
Ja det ser ud til at virke.. http://vbhansen.dk/spm/ også med .htaccess
Avatar billede sjh Nybegynder
03. august 2006 - 14:07 #13
Hvor mange subdomæner har du tænkt dig at hoste? Det ved jeg ikke.. men det skal kunne ændres ved at seltte mappe eller oprette mappe
Avatar billede fixxxer Nybegynder
03. august 2006 - 14:08 #14
Jeg er ikke helt sikker på hvad du svarer ja til?

Hvad virker, hvad valgte du at bruge?
Avatar billede sjh Nybegynder
03. august 2006 - 14:10 #15
den her bruger jeg:
auto_prepend_file = "C:\php\...\AutoPrependFile.php"

$_SERVER["DOCUMENT_ROOT"] .= $_SERVER["SERVER_NAME"];

og så den her:

# subdomæne
<VirtualHost *:80>
  ServerAdmin none@none.dk
  VirtualDocumentRoot D:/Programmer/Apache/htdocs/%0
</VirtualHost>
Avatar billede fixxxer Nybegynder
03. august 2006 - 14:12 #16
Hvis du vil have en løsning der ikke kræver genstart af apache efter der er foretaget ændringer i virtualhosts opsætning, skal du bruge vhost_alias - og så må du leve med den måde den gør siderne tilgængelige på.

Du kunne også overveje at opgradere Apache, det er muligt at der kommet rettelser til vhost mekanismen i version 2.
Avatar billede sjh Nybegynder
03. august 2006 - 14:15 #17
skulle måske prøve med et subdomæne

http://test.vbhansen.dk/ :D
Avatar billede sjh Nybegynder
03. august 2006 - 14:38 #18
... skal du bruge vhost_alias ... (det er jo også det jeg gør.. Kommentar: sjh 03/08-2006 12:21:17)
Avatar billede fixxxer Nybegynder
03. august 2006 - 15:05 #19
Ok, hvis du har fundet en løsning, så luk blot spørgsmål.

Jeg er har ikke yderligere at tilføje.
Avatar billede sjh Nybegynder
03. august 2006 - 15:06 #20
nu tror jeg den er hjemme.. efter at jeg fik fixed documentroot..

Smider du lige et svar fixxxer
Avatar billede sjh Nybegynder
03. august 2006 - 15:13 #21
men skulle der være brud på sikkerheden så betyder det ikke så meget.. det er kun mig selv der skal rode med det ;)

så hvis andre vil bruge den til at tilbyde subdomæner skal de nok ikke bruge denne løsning ;)
Avatar billede sjh Nybegynder
03. august 2006 - 15:34 #22
Smider du lige et svar fixxxer
Avatar billede fixxxer Nybegynder
03. august 2006 - 18:08 #23
Kommer her..
Avatar billede sjh Nybegynder
03. august 2006 - 21:04 #24
Tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester