2010-01-06 1 views
0

je les règles de réécriture suivantes:Rediriger/media/* à/projet/media/* et tout le reste à /dispatch.php

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteBase/

    # Route requests to /media/* to /projects/media/* 
    RewriteRule ^media/.* - [NC,L] 

    # Route all URLs to dispatch.php. 
    RewriteRule ^(.*)$ dispatch.php [L] 
</IfModule> 

Ce réoriente tout à dispatch.php, à moins que l'URL est example.com/media/* Dans ce cas, il recherchera le fichier demandé dans ./media/. Je voudrais que l'URL /media/* soit réécrite pour regarder project/media/*. L'utilisation de la règle de réécriture RewriteRule ^media/.* project/media [NC,L] aboutit à tout ce qui va à dispatch.php.

Répondre

0

La solution peut être trouvée here.

0

Vous devrez capturer le chemin et l'ajouter. Tels que:

RewriteRule ^media/(.*)$ project/media/$1 [NC,L] 
+0

J'ai déjà essayé ceci et il en résulte que tout est réécrit pour dispatch.php –

0

Essayez ces règles:

RewriteRule ^media/.* project/$0 [NC,L] 
RewriteRule !^project/ dispatch.php [L] 
+0

Cette règle ne fonctionne pas. Aussi je voudrais router/media/vers le répertoire/projects/media. –

0
RewriteEngine on 
RewriteBase/
# Route requests to /media/* to /projects/media/* 
RewriteRule ^media/(.*)$ project/media/$1 [L] 
# Route all URLs to dispatch.php. 
RewriteCond %{REQUEST_URI} !^/project/media/.* 
RewriteRule ^(.*)$ maintenance.php [L] 

Au départ, je voulais utiliser la variable %{IS_SUBREQ} spéciale, mais je ne pouvais pas le faire fonctionner.

Questions connexes