Redirection permanente et changement d'extension

PointdV

Nouveau WRInaute
Bonjour,

Je gère un site d'informations dont je viens de modifier la structure et le contenu. Car les internautes qui sont envoyés (via google) sur mes documents pdf ne voient jamais mon site.

Auparavant donc j'avais des documents pdf en accès direct (hélas).
Aujourd'hui je veux empêcher cet accès direct et envoyer le visiteur vers une page html personnalisée (sorte d'intro au document pdf visé) rangée dans un nouveau dossier, qui lui permettra d'accéder à ce document pdf.

Mon souci est d'écrire un code htaccess qui fonctionne et là je sèche à cause du changement d'extension en html.
voici donc les adresses que je souhaite changer

anciennes adresses
www.mondomaine/dossier1/nomdudocument.pdf
www.mondomaine/dossier1/dossier2/nomdudocument.pdf

nouvelles adresses
www.mondomaine/fiches/nomdudocument.html

Est-il possible de faire un redirect Permanent afin qu'il soit enregistrer en code 301 ?

Merci pour votre aide
 

jeanluc

WRInaute accro
Bonjour et bienvenue,

Il ne faut rien faire de particulier pour changer d'extension.

Tu fais ceci :
Code:
RewriteRule ^dossier1/nomdudocument.pdf$ http://www.mondomaine/fiches/nomdudocument.html [L,R=301]

Ou ceci :
Code:
RedirectPermanent /dossier1/nomdudocument.pdf http://www.mondomaine/fiches/nomdudocument.html

Jean-Luc
 

zeb

WRInaute accro
tu peux aussi forcer l'interprétation des extensions pdf par php qui lui renverra (entre autre) un lien de download en plus du contenu que tu souhaite afficher.
 

PointdV

Nouveau WRInaute
Merci pour cette réponse rapide ^^

Mais j'ai oublié de préciser qu'il y a près d'un millier de documents à rediriger et convertir (de pdf en html dans un nouveau dossier)
Existe t-il un code du même style (pour fichier htaccess) mais en 1 seule ligne ?

J'ai par exemple vu parler de :
RedirectMatch seeother ^/Dossiers/(.*)\.pdf$ http://mondomaine/fiches/$1.html

J'ai essayé ce code, la redirection fonctionne mais cela donne une erreur code 303 (move temporaire) et je ne suis pas sûr que Google réécrive les nouvelles adresses en lieu et place des anciennes dans l'index Google.
Donc existerait-il un code du style Redirectpermanent ou RewriteRule qui donnerait un code 301 ? je ne suis pas très à l'aise avec cette syntaxe.

Paul
 

Leonick

WRInaute accro
comme te l'as dit zeb : tu fais interpréter le php sur tes extensions pdf et, si l'internaute vient juste d'arriver sur ton site, tu lui affiche ta page. S'il provient de ta page tu lui envoie le contenu du pdf
 

jeanluc

WRInaute accro
Essaie quelque chose comme ceci :
Code:
RewriteRule ^dossier1/(.*).pdf$ http://www.mondomaine/fiches/$1.html [L,R=301]
Jean-Luc
 

PointdV

Nouveau WRInaute
Bonjour

Hélas cela ne fonctionne pas. J'ai essayer avec un / supplémentaire après ^ mais pareil...

complexe complexe ^^

Paul
 

PointdV

Nouveau WRInaute
Re

ça y est j'ai trouvé la règle est la suivante :

RewriteEngine On
RewriteRule ^Dossiers/(.*)\.pdf$ http://mondomaine/fiches/$1.html [R=301,L]
 

zeb

WRInaute accro
perso je gère des images avec un truc du style mais bon ... du pdf c'est pareil :

Code:
	# traitement pdf
	RewriteCond %{REQUEST_URI}  ^(.*)pdf$
	RewriteRule ^(.*)pdf$ /dossier/scrip-pdf.php?data=$1 [L]

cette règle ne correspond pas a ce que je disais plus haut, mais elle permet de renvoyer toutes les url de pdf sur un unique script php. A toi de voir ce que tu y met et ce que tu y fait. Ca permet en fait de n'avoir qu'un seul script a créer pour gérer tout le contenu pdf. La variable d'environnement $_GET['data'] te permettra, dans ce script, de déterminer l'url qui était demandée et par voie de conséquences le pdf en question.

sinon si tu souhaite gérer les pdf un par un :

Code:
	AddType x-mapp-php5 .pdf
provoque l'interprétation par le php engine des fichiers avec extension pdf. a toi de faire ne sorte qu'ils soit capables de produire l'effet voulu.
 

Discussions similaires

Haut