Utilisation de .htaccess pour diffuser du contenu de domaine racine à partir d’un sous-domaine

J’ai une application PHP qui nécessite que la racine du document du domaine soit définie sur /(wherever)/app_dir/www pour pouvoir s’exécuter correctement (ce qui ne peut malheureusement pas être modifié). Malheureusement, sur mon hôte, je ne peux pas modifier la racine du document principal mydomain.com (de /public_html vers /public_html/app_dir/www mais je peux modifier la racine du document pour les sous-domaines.

Les sous-domaines sont stockés dans /public_html/subdomain.domain.com et la définition de la racine du sous-domaine sur /public_html/subdomain.domain.com/app_dir/www permet à l’application d’afficher son contenu http://subdomain.domain.com/ sur http://subdomain.domain.com/ .

Pour que son contenu apparaisse au niveau du domaine racine (où je ne peux pas l’installer car la racine du document n’est pas modifiable), j’essaie d’utiliser .htaccess pour diffuser du contenu du sous-domaine sans redirect le navigateur. Allez donc sur www.domain.com affichera www.domain.com dans la barre d’ www.domain.com , mais diffusera en réalité le contenu de subdomain.domain.com (et de même avec www.domain.com/something tirant la place de subdomain.domain.com/something ).

Si je comprends bien, mod_proxy devrait pouvoir le faire (et est installé). Sur la base d’autres réponses SO à des requêtes similaires, cela semble être la solution:

 RewriteEngine On RewriteRule ^(www.)?domain\.com$ http://subdomain.domain.com/$1 [L,P] 

Je l’ai essayé avec un simple index.html à la place de quelque chose de plus complexe, mais soit ma syntaxe est désactivée (j’ai essayé plusieurs variantes, sans joie, y compris sans l’option P; je ne suis pas expert et mon mon expérience précédente est limitée à de simples réécritures et à des redirections 301), j’ai raté quelque chose de trop évident, ou j’abandonne complètement le mauvais arbre, car je reçois juste le fichier d’index factice que j’ai au niveau du domaine racine du fichier d’index également factice assis dans la racine du sous-domaine (qui affiche très bien si vous allez à subdomain.domain.com , mais ce n’est pas le but).

Toute aide serait très appréciée!

Cette règle est fausse et erronée, elle ne fait pas ce que vous pensez devoir faire:

 RewriteRule ^(www.)?domain\.com$ http://subdomain.domain.com/$1 [L,P] 

Rappelez-vous que RewriteRule correspond uniquement à la demande REQUEST_URI sans les parties de chaîne de domaine et de requête.

Si mod_proxy est activé, vous pouvez avoir cette règle à la place:

 Options +FollowSymLinks -MultiViews # Turn mod_rewrite on RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC] RewriteRule ^ http://subdomain.domain.com%{REQUEST_URI} [P,L] 

Si pour une raison quelconque, mod_proxy n’est pas activé, faites-le moi savoir, je vous proposerai une solution alternative.