Bonjour,

J'ai un soucis dans la config de mes vhosts, en fait ils sont fonctionnent bien mais je n'arrive pas à mettre en place le fait qu'un script n'aille pas accéder au fichier d'un autre vhost. J'ai plusieurs vhosts (pointant vers la même racine) et chacun correspond à un sous-domaine.

En gros:
static.monsite.com : pour servir les css,js,swf,img avec pour url monsite.com/img/, monsite.com/css/, .....
msg.monsite.com: pour les scripts du module "message" dont l'url commence par msg.monsite.com/message/....
www.monsite.com: pour le reste

L'objectif étant de rediriger tous les scripts qui n'ont pas à être exécuté sur un vhost (sous domaine) donné vers la page www.monsite.com/home/.

Par exemple si on essaye de "fourber" dans l'url avec msg.monsite.com/compte/profil/ au lieu de www.monsite.com/compte/profil l'utilisateur est automatiquement redirigé vers www.monsite.com/home/

Je suis parti sur l'idée d'utiliser le mod_rewrite d'apache.

Voici la config d'un de mon vhost de test:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "D:/site/zend_workspace/monsite/public"
    ServerName msg.monsite.com
    ErrorLog "c:/wamp/logs/msg_error.log"
    CustomLog "c:/wamp/logs/msg_access.log" common
 
                RewriteEngine On
                RewriteCond %{REQUEST_URI} !^/message/
                RewriteRule ^(.*)$ <a href="http://www.monsite.com/home/" target="_blank">http://www.monsite.com/home/</a> [L]
 
                <directory "D:/site/zend_workspace/monsite/public">
        Options Indexes FollowSymLinks
        AllowOverride all
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
                               Allow from .monsite.com
                </directory>
</VirtualHost>
Je veux tester si dans la requête demandée apparaît "/message/", si non on redirige vers monsite.com/home .

Sachant que par défaut avec Zend, j'ai un .htaccess dans le rep /public/ (public/css/, public/img... et public/index.php) qui contient:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
D'après ce que j'ai compris, apparemment toutes les requêtes passerait par index.php avant d'être traitée.

Quelqu'un serai me dire ce qu'il ne va pas dans la config de mon vhost?

Merci