2016-02-09 1 views
2

Je subfolder espère que quelqu'un me aider, parce que je suis coincé avec ceci:htaccess à nouveau - Réécriture spécial URL pour

nom de domaine - test.site.com racine du document ==/www/test tout le contenu (CMS) situé à/www/test/web J'ai besoin quand je tape dans la barre d'adresse: 1) test.site.com/* - le site s'ouvre à partir de/www/test/web et la barre d'adresse conserve l'URL "test.site.com/* »

2) de type test.site.com/web/* - le même comportement - Ouverture du site du Web et URL changé à "test.site.com/*"

3) une exception - le type test.site.com/folder1 - ouvre la page de/www/test/folder1

Je peux rediriger vers un sous-dossier "web" De cette façon:

.htacesss dans/www/test:

RewriteCond %{HTTP_HOST} ^test.site.com$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^www.test.site.com$ 
RewriteCond %{REQUEST_URI} !web/ 
RewriteRule (.*) /web/$1 [L] 

mais cela ne fonctionne que pour 1) exigence. 2) et 3) ne fonctionne pas. et quant à 3) je peux voir que chaque demande sera redirigé vers le sous-dossier "web".

Répondre

0

Pour votre 2ème exigence, vous avez besoin d'une règle supplémentaire pour rediriger/web vers/root.

Quelque chose comme ceci:

RewriteCond %{THE_REQUEST} /web/([^\s]*) [NC] 
RewriteRule^/%1 [NC,L,R] 

La règle ci-dessus correspondra à toute demande commençant par/web/foo et rediriger la requête vers/foo.

Et pour le 3ème, vous avez besoin d'un RewriteCond pour exclure le/dossier1 de RewriteRule.

RewriteCond %{REQUEST_URI} !^/folder1 

RÉÉCRITURE

RewriteCond %{THE_REQUEST} /web/([^\s]*) [NC] 
RewriteRule^/%1 [NC,L,R] 
RewriteCond %{HTTP_HOST} ^(www\.)?test.site.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/folder1  RewriteRule ((?!web).*) /web/$1 [NC,L]