[Apache, mod_rewrite] 'is file' na Alias

Pagina: 1
Acties:

  • Joolee
  • Registratie: Juni 2005
  • Niet online
Hieronder het virtualhost bestand van een domein waar verschillende andere websites op draaien. Op de aliassen werkt de code hieronder perfect zoals het zou moeten werken. Tot zover getest is in ieder geval.

Het belangrijkste voor de standaard website die op dit domein draait is de onderste regel. Zoals je ziet wordt eerst het www. gedeelte van een URL verwijderd en een subdomein omgezet naar een subdir ( sub.domein.nl => domein.nl/sub/ ). Vervolgens wordt er gekeken of er misschien een bestaand bestand of folder word aangeroepen, als dat zo is moet de onderste regel niet uitgevoerd worden maar gewoon het bestand weergegeven worden.

Het enige probleem is dat een bestaand bestand via een alias niet word gezien als bestaand bestand omdat ernaar gezocht word in de document root. Is er een methode omheen te vinden of is mijn hele opzet al verkeerd?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<VirtualHost *>
    servername   domein.nl
    serverAlias   *.domein.nl

    DocumentRoot  E:/website/www

    AliasMatch    /(phpmyadmin|phpma)/?(.*)        E:/scripts/phpmyadmin/$2
    AliasMatch    ^/(info)/?(.*)                   E:/scripts/phpinfo/$2
    AliasMatch    ^/usr/([^/]+)/?(.*)              D:/users/$1/www/$2
    AliasMatch    ^/dom/([^/]+)/?(.*)              D:/domains/$1/www/$2

    RewriteEngine On
    # Verwijder www.
    RewriteCond   %{HTTP_HOST}   ^www\.(.+)$ [NC]
    RewriteRule   ^(.*)$   http://%1$1 [R=301,L]

    # Redir subdomains naar subfolders
    RewriteCond   %{HTTP_HOST}   ^([a-z]+[a-z0-9-_]*[a-z0-9]+)\.(.+\..+)$ [NC]
    RewriteRule   ^(.*)$   http://%2/%1$1 [R=301,L]
    
    #Voer de laatste rewrite niet uit als er een bestaand bestand wordt opgeroepen
    RewriteCond   %{DOCUMENT_ROOT}%{SCRIPT_FILENAME} -d [OR]
    RewriteCond   %{DOCUMENT_ROOT}%{SCRIPT_FILENAME} -f
    RewriteRule    (.*) $1 [L,NS]

    # domein.nl/gebruikers/edit/ => domein.nl/index.php/gebruikers/edit/
    RewriteRule      ^([^\./]+)?/(.*) /index.php/$2 [L,NS]
</VirtualHost>

  • Joolee
  • Registratie: Juni 2005
  • Niet online
Subtiel schopje...

  • Joolee
  • Registratie: Juni 2005
  • Niet online
Laatste schop...

  • Equator
  • Registratie: April 2001
  • Laatst online: 09-02 07:08

Equator

Crew Council

#whisky #barista

Ik verplaats het topic even naar Windows Server en server Software. misschien dat je daar meer geluk hebt :)