2012-12-29 1 views
1

J'ai la structure suivante dans mon site et je dois rediriger tout le trafic vers un sous-domainehtaccess chemin Réécrire à sous-domaine à l'exception du document Index

Structure:

domain.com/subdomain/ 
       .../folder1/folder/1.txt 
       .../folder1/folder/2.txt 
       .../folder2/folder/1.txt 
       .../folder2/folder/1.txt 
       .../index.php 

Je veux rediriger tous les à l'exception du trafic index.php ou (domain.com/subdomain/) à un sous-domaine

Exemple:

domain.com/subdomain/folder1/folder/1.txt ---> subdomain.domain.com/folder1/folder/1.txt 
domain.com/subdomain/folder1/folder/2.txt ---> subdomain.domain.com/folder1/folder/1.txt 

Mais

domain.com/subdomain/index.php ---> No redirect 
domain.com/subdomain/ ---> No redirect 

C'est ce que je suis venu avec:

Options +FollowSymlinks 
RewriteEngine on 
RewriteRule ^(.*)$ http://subdomain.domain.com/$1 [NC] 

Cela fonctionne pour toute la demande, mais je veux exclure les deux/index.php & de cette RewriteRule

Merci !

Répondre

1

Vous aurez besoin d'un peu plus que ce que vous avez ici. Vous devez d'abord vérifier le domaine avec RewriteCond. Le modèle ^subdomain/?(index\.php)?$ doit correspondre aux demandes de la racine de sous-domaine ou index.php avec ou sans /. Techniquement, cela correspondrait également au subdomainindex.php invalide sans / entre mais cela aboutirait à un 404 de toute façon.

RewriteEngine On 
# If the requested domain isn't already the subdomain... 
RewriteCond %{HTTP_HOST} !^subdomain\. [NC] 
# Rewrite it to the subdomain 
# unless it is a request for index.php or/
RewriteRule ^subdomain/?(index\.php)?$ - [L] 
RewriteRule ^subdomain/(.*) http://subdomain.com/$1 [L,R=301,NC]