2010-12-02 4 views
0

J'utilise des chemins directs pour télécharger des fichiers de mon site. le lien est quelque chose comme çamodification de .htaccess

http://www.site.com/download.php?dir1/dir/dir3/file.doc

je veux l'envelopper avec les règles de rewite mod de sorte que seul lien ci-dessous devrait être apparu

http://www.site.com/download

fichier

, dir et rep3 sont variables. que dois-je faire dans mon fichier .htaccess ?? Une idée??

+0

Les 'mod_rewrite' docs sont [ici] (http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html). Donnez-lui un coup de feu et signalez les erreurs ici et les gens vont vous aider. –

Répondre

0

Une simple redirection serait:

RewriteRule ^http://www.site.com/download/(.*)/?$ http://www.site.com/download.php?dir1/dir/dir3/$1 [NC,L] 

Cela prendra toute demande de quelque chose dans le répertoire de téléchargement « artificiel » et la route vers l'emplacement réel.

Vous pouvez ajouter des règles plus complexes de décapage des types de fichiers, etc en fonction de vos besoins, ou de rediriger un « nom » à un nom de fichier, etc etc ..

par exemple:

RewriteRule ^http://www.site.com/download/pdf/(.*)/?$ http://www.site.com/download.php?dir1/dir/dir3/$1.pdf [L,NC] 

Cela aurait un artificielle Dossier PDF contenant un nom de fichier ex l'extension, le routage vers un document .pdf .... vous pouvez façonner la redirection comme vous le souhaitez vraiment ... dépend du format que vous préférez

+0

désolé je n'ai pas mentionné que le répertoire dir et dir3 sont également des répertoires variables. – Adeel

+0

Si elles sont variables, elles doivent également être transmises ... ce qui signifie que vous finirez par envoyer la même information ... il ne semble pas que la logique soit correcte ici. Vous devrez stocker les chemins dans une base de données, puis passer l'ID de fichier via htaccess vers un fichier de sortie PHP ... ou simplement passer dans htaccess en laissant la structure d'origine – SW4

0

Question non spécifique. Qu'est-ce que dir1/dir/dir3/file.doc signifie? Si vous voulez obtenir http://www.site.com/download.php?dir1/dir/dir3/file.doc, quand vous allez à http://www.site.com/download faire les choses suivantes dans votre fichier .htaccess.

RewriteEngine on 
RewriteRule ^download/(.*)/?$ download.php?dir1/dir/dir3/file.doc [L]