2010-09-24 4 views
0

Y at-il un moyen de dire à Apache de simuler un répertoire dans l'URL?Apache RewriteRule pour simuler le répertoire

Voici ce que j'essaie de faire ... J'ai actuellement une URL comme http://photo.mydomain.com/pics/17/120417/1.jpg et je voudrais être en mesure d'atteindre le même contenu avec une URL comme http: //photo.mydomain.com/pics /51/17/120417/1.jpg.

Est-ce possible? Si oui, un peu de serait très apprécié :-)

Merci!

+0

Les chemins d'URL ne sont pas des chemins de système de fichiers. Et donc il n'y a pas de répertoires dans les chemins d'URL, seulement des segments. – Gumbo

Répondre

1

Essayez cette règle:

RewriteRule ^pics/\d{2}/([^/]+/[^/]+/[^/]+)$ pics/$1 

Modifier Étant donné que vous utilisez cette règle dans la section <VirtualHost> et non dans un fichier .htaccess, vous devez utiliser le chemin d'accès complet avec le préfixe de chemin dans le modèle:

RewriteRule ^/pics/\d{2}/([^/]+/[^/]+/[^/]+)$ pics/$1 

uniquement dans les fichiers .htaccess vous devez les supprimer:

Lorsque vous utilisez le moteur de réécriture dans les fichiers .htaccess le préfixe par répertoire (qui est toujours le même pour un répertoire spécifique) est automatiquement retiré pour la correspondance de modèle et automatiquement ajouté après la substitution a été effectuée.

+0

Merci, mais la règle ne semble pas fonctionner et je reçois un 404. J'ai activé réécrire la journalisation et je vois que les règles sont correctement interprétées. – Massilia

+0

@Sylvain V: Utilisez-vous d'autres règles qui pourraient entrer en conflit avec celle-ci? – Gumbo

+0

non, dans ce vhost, il n'y a que cette règle – Massilia

0

Oui, c'est possible.

RewriteEngine On 
RewriteRule ^pics/\d{2}/(.+)$ pics/$1 

"\ d {2}" serait "51" et "(. +)" Désigne un ou plusieurs symboles

+0

Merci, mais la règle ne semble pas fonctionner et je reçois un 404. J'ai activé la réécriture de la journalisation et je vois que les règles sont correctement interprétées. – Massilia

+0

@Sylvain V: Ajoutez l'indicateur R et montrez-nous l'URL que vous obtenez – Anpher

+0

ok, la réécriture a été changée en RewriteRule^pics/\ d {2}/(. +) $ Pics/$ 1 [R] et l'URL retournée doesn 't changé, si j'ajoute le/51/ou pas, et je reçois un 404 avec/51/ – Massilia