2010-12-09 2 views
0

EDIT
Après un commentaire de Seth ci-dessous, et se dirigeant vers une page apache utile here, j'ai trouvé que VirtualHosts sont la voie à suivre pour la problème suivant.
/modifierhtaccess rewriterule pour le répertoire est en train de changer l'URL d'une manière undesireable

- ORIGINAL POST-
D'abord, un petit retour en arrière sur la configuration du fichier. Je cours un serveur de LAMP qui héberge plusieurs domaines. J'ai des sites de mise en scène et en direct sur ce serveur, sous différents répertoires sous la racine web.

exemples /Webroot/live/site1/[fichiers publics] /Webroot/live/site2/[fichiers publics]

/Webroot/stade/site1/[fichiers publics] /Webroot/stade/site2/[fichiers publics]

Les domaines de chacun d'entre eux vont à l'adresse IP du serveur, qui pointe sur le répertoire webroot. J'ai un fichier .htaccess là pour charger le contenu approprié basé sur http_host.

exemples

RewriteCond %{HTTP_HOST} ^www.site1-live.com [NC] 
RewriteRule ^(.*)$ /live/site1/$1 [PT,L,QSA] 

RewriteCond %{HTTP_HOST} ^www.site1-stage.com [NC] 
RewriteRule ^(.*)$ /stage/site1/$1 [PT,L,QSA] 

Ceux-ci fonctionnent très bien pour frapper la page d'accueil et l'une des pages internes, même avec les pages spécifiques comme étant site1-live.com/view/123. Htaccess de chaque site gère ceux-ci.

Ma question (désolé il a fallu si longtemps pour y arriver):

Lorsque je me dirige vers un sous-répertoires de site, comme www.site1-live.com/rss, les charges de contenu très bien, mais l'URL change à quelque chose comme le suivant

http://www.site1-live.com/live/site1/rss/ 

Essentiellement le chemin d'accès de la racine Web aux fichiers.

Comment puis-je éviter cela? Je veux évidemment que l'URL reste sur www.site1-live.com/rss. Ai-je besoin d'un fichier htaccess dans le répertoire rss pour le bloquer d'une manière ou d'une autre?

Merci d'avance!

+0

Ainsi, il affiche uniquement l'URL racine lorsque vous visitez un dossier, pas un fichier ou une page? –

+0

à droite, si je vais à www.site1-live.com/somepage.php il reste en tant que tel. Je pense que la recommandation de Seth concernant les hôtes virtuels sera probablement la bonne. Je vais regarder dans ceux-ci. –

Répondre

0

remplacer^www avec^(. *)

ont alors l'ensemble url dans la deuxième ligne www.yourdomain.com/live/...

+1

Et comment cela règle-t-il son problème? –

+0

mal lu votre message. Vous ne devriez pas utiliser un htaccess pour cela. Vous devriez configurer des hôtes virtuels. Avez-vous besoin d'instructions sur la façon de faire cela? – sethvargo

+0

J'ai entendu parler de ces ... destinés à les examiner ... oui Seth, ce serait très utile –

0

Doug,

pourquoi vous besoin du drapeau QSA? Quoi qu'il en soit, ce qui vous arrive, c'est que mod_index (ou tout ce qui vous sert de répertoires) vous redirige www.site1-live.com/rss (sans la terminaison /) vers l'URL équivalente avec la terminaison /.

Si vous n'utilisez pas mod_alias ou une liste de quelque chose que sur les URL réécrites, supprimer le PT devrait fonctionner comme prévu.

+0

QSA préserve les chaînes de requête ajoutées à uri, il n'a rien à voir avec cela autant que je sache. Je m'attendrais au comportement qu'il décrit quand la balise [R] est utilisée bien .. –

+0

oui, je m'attendrais à cela de [R] aussi bien, mais il déclare spécifiquement qu'il utilise [PT] – theMage

+0

d'un autre côté, s'il n'utilise pas Mod_Alias ​​ou quelque chose de similaire, il n'aura pas besoin du PT de toute façon. – theMage