Dépannage d'une réécriture de sous-domaine générique .htaccess

J'ai travaillé sur ce problème pendant 3 jours solides et posté sur plusieurs forums sans pistes.

Problème:

Lorsqu'un utilisateur tape sous SUBDOMAIN.domain.com, je souhaite qu'il reste ainsi dans la fenêtre URL.

L'emplacement réel de ces fichiers est domain.com/apps/SUBDOMAIN

Je sais que cela est possible en utilisant un enregistrement .domain.com DNS A (ce que j'ai fait) et une règle .htaccess.

Ceci est ma règle .htaccess en ce moment

RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.com$ [NC] RewriteRule !^([a-z0-9-]+)($|/) /apps/%2%{REQUEST_URI} [PT,L] 

D'accord, cela fonctionne presque.

Tapez dans le sous-domaine.domain.com lit de domain.com/apps/subdomain

MAIS quelque chose va terriblement mal.

Visiter le sous-domaine.domain.com/image.jpg (AKA domain.com/apps/subdomain) fonctionne bien

Visiter subdomain.domain.com/anyfolder/image.jpg (AKA domain.com/apps/subdomain) renvoie un 404

En regardant le journal des erreurs de Cpanel, ceci s'affiche

 [Thu Nov 18 20:48:50 2010] [error] [client ***.**.***.***] File does not exist: /home/domain/public_html/images, referer: http://subdomain.domain.com/apps/subdomain/ 

Donc, il semble qu'il y ait une réécriture correcte sur une base de premier répertoire, mais quelque chose de plus bas que celui qui est renvoyé vers le répertoire public_html.

Toute l'aide et les conseils seraient grandement appréciés

Merci,

Tim

PS. J'ai dû supprimer le formatage approprié de l'hyperlien car je suis un nouvel utilisateur.

Corrigez-moi si je me trompe, mais la règle de réécriture que vous avez:

 RewriteRule !^([a-z0-9-]+)($|/) /apps/%2%{REQUEST_URI} [PT,L] 

Dit: réécrivez seulement si ^([a-z0-9-]+)($|/) ne correspond pas . Lorsque votre chemin d'URL est /anyfolder/image.jpg , ce qui ^anyfolder/ correspondra ( ^anyfolder/ ), la règle de réécriture ne sera pas exécutée, de sorte que vous continuerez essentiellement à subdomain.domain.com/anyfolder/image.jpg .

La question SO suivante a une exigence similaire:

Dans sa réponse, Glavić donne la réponse qui devrait fonctionner, donne également ce lien:

Essayez, cela devrait fonctionner correctement.

Pouvez-vous modifier httpd.conf? Il semble beaucoup plus simple d'utiliser des hôtes virtuels dynamiques. Consultez http://httpd.apache.org/docs/2.2/vhosts/mass.html et http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html