2009-08-03 4 views
1

Juste une petite chose rapide, mais je ne peux pas passer à côté. Donc, disons que vous auriez dans vos fichiers html des références aux images et fichiers css, quelque chose comme ceci: < img src = "/ img/myimage.jpg"/>, et ainsi de suite. Maintenant, si vous vouliez ajouter une règle de réécriture de mod pour mapper ces adresses à quelque chose comme /subset/img/myimage.jpg, comment feriez-vous cela? En ce qui me concerne, je ne pouvais pas remplacer les chemins commencés par /. Et pendant que vous y êtes, ce serait bien s'il existait une règle qui ferait ce mapping pour toutes les demandes de fichiers.mod_rewrite pour remplacer les appels à la racine html

Merci!

Edit: Et encore une chose. Il y a aussi des chemins relatifs (générés par tinyMCE) qui fonctionnent comme ceci "../../../../img/myimage.jpg". Je ne suis pas vraiment sûr de savoir pourquoi cela fonctionne, parce que ces chemins seraient mappés quelque part en dessous de public_html. Toute aide avec ceux-ci serait également appréciée.

Répondre

0

Ahh! Désolé d'être stupide. Vous devrez bien sûr gérer les requêtes mappées à la racine du document à la racine du document. Vous voyez que je travaillais dans un sous-répertoire.

Le fait que les chemins d'accès qui sont mappés en dessous de public_html ou www gère encore me dérange. Mais je suppose que les extra "../" sont juste ignorés et mappés à la racine du document.

0

Essayez cette règle:

RewriteRule ^img/.* subset/$0 [L] 

Et maintenant à votre deuxième question: URIs relatives sont toujours résolus à un URI absolu avant d'être envoyés au serveur. Ainsi, le client va résoudre ../../../../img/myimage.jpg en fonction de l'URI de base (voir RFC 2396, 5.2 Résolution des références relatives au formulaire absolu). Ainsi, le serveur recevra toujours un chemin URI absolu qu'il pourra ensuite ajouter au chemin racine du document pour mapper le chemin d'accès URI demandé au système de fichiers.

+0

Et je devine que ça va enlever l'excès "../"? – JHollanti

+0

Oui, inutiles '../' sont supprimés. Essayez-le par vous-même: http://example.com/../../../../../../../../. – Gumbo

Questions connexes