web-dev-qa-db-fra.com

Comment configurer un hôte virtuel pour prendre en compte le chemin de domaine dans Apache

la définition d'hôte virtuel suivante fonctionne pour une URL arbitraire commençant par "http://1.2.3.4:80/*"

<VirtualHost *:80>
     ServerName www.domain.com
     DocumentRoot /home/user/www/application/current/public
     <Directory /home/user/www/application/current/public>
         Order allow,deny
         Allow from all
     </Directory>
</VirtualHost>

Comment réécrire cette configuration afin qu'elle ne soit appliquée qu'aux URL commençant par "http://1.2.3.4:80/user/*"

J'ai essayé "ServerPath/user", mais ça ne marche pas ...

Des idées?

2
Scholle

Malheureusement, ServerPath est une directive héritée utilisée pour prendre en charge les clients HTTP/1.0 qui ne prennent pas en charge l'en-tête Host:. Par conséquent, une alternative consiste à avoir le vhost principal affichez une page avec des liens utilisant des préfixes d'URL pouvant être utilisés par Apache pour le routage .

Pour que ce mécanisme de support existant fonctionne, vous devez ignorer complètement l'en-tête Host (car les navigateurs à prendre en charge n'enverraient pas d'en-tête). Vous ne pouvez donc pas utiliser ServerName et ServerPath simultanément.

J'utiliserais simplement mod_rewrite pour faire ce que vous voulez.

1
Lèse majesté

Je suis désolé de ne pouvoir répondre directement à votre question, mais cela me fascine. Je supporte Apache sur différents forums depuis 6 ans et c'est la première fois que je vois une question ServerPath. Qu'est-ce qui vous a amené à le considérer?

C'est une fonctionnalité tellement ancienne et désaffectée que je suppose que même ServerPath a oublié que ServerPath existait déjà.

0
noodl