web-dev-qa-db-fra.com

Réécriture d'URL Apache avec masquage et inclut en dehors de DocumentRoot

J'ai un serveur Web Apache 2.2.15 avec le site principal à /web/mybiz qui correspond à http://mybiz.domain.com. Nous avons maintenant un nouveau sous-domaine http://abc.mybiz.domain.com avec la page d'accueil résidant à /web/mybiz/abc/index.html.

Actuellement, j'ai une réécriture simple, donc quand les gens visitent http://abc.mybiz.domain.com, ils sont redirigés vers http://mybiz.domain.com/abc/index.html. Les includes pour cette page d'accueil résident dans /web/mybiz/static et /web/mybiz/images.

Je dois l'avoir pour que les visiteurs ne voient pas le changement d'URL dans le navigateur, mais je ne peux pas comprendre comment le faire fonctionner et conserver les inclus.

1
Gregg Leventhal

L'utilisation d'une condition de réécriture et d'une règle pour mapper de manière transparente dans le sous-répertoire devrait fonctionner.

RewriteCond %{HTTP_Host} ^abc\.mybiz\.domain\.com$ [NC]
RewriteCond %{REQUEST_URI} ^(/|.*\.html)$ [NC]
RewriteRule ^/(.*)$ /abc/$1 [L]

Maintenant, quand une demande pour http://abc.mybiz.domain.com/ ou http://abc.mybiz.domain.com/index.html est faite, elle sera extraite du sous-répertoire/abc /. Cela couvre également toute demande de fichier .html. Votre comprend (images/css/javascript)? devrait être retiré de leur emplacement réel très bien.

http://httpd.Apache.org/docs/2.2/mod/mod_rewrite.html

1
Dave Lozier