réecriture repertoire et extension

  • Auteur de la discussion Auteur de la discussion fabrice88
  • Date de début Date de début
WRInaute occasionnel
bonjour,
je voudrai réécrire les url de mon site en changent le nom du repertoire ou sont stockées les pages et en changeant l'extension des pages.

exemple :
pages origine :

pages souhaitées au final :

j'ai donc donc mon htaccess mis :
Code:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^repertoireorigine/([a-zA-Z0-9-]*)\.php$ /nouveaurepertoire/([a-zA-Z0-9-]*)\.html$ [L]
ErrorDocument 404 http://www.monsite.fr/404.php

mais sa ne fonctionne pas.
 
WRInaute occasionnel
pourquoi je ne peu plus editer mon message ?

alors j'ai fais un changement dans mon htaccess.
j'ai mis :
Code:
RewriteRule ^nouveaurepertoire/([a-zA-Z0-9-]*)\.html$ /repertoireorigine/$1.php [L]
j'ai bien la réécriture qui fonctionne cette fois mais j'ai perdu mon style (en gros plus de css).
dans mon header mon css est appelé de cette manière :
Code:
<link href="style.css" rel="stylesheet" type="text/css" />
donc en principe il ne devrait pas y avoir de probleme mais pourtant plus de style pris en compte.
Avez vous une idée ?
 
WRInaute passionné
c'est plutôt :
Code:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^repertoireorigine/([a-zA-Z0-9-]*)\.html$ /nouveaurepertoire/$1.php [L]
ErrorDocument 404 http://www.monsite.fr/404.php
il faut ensuite changer les urls sur le site et prévoir une redirection si les anciennes pages sont déjà indexées et/ou avec des liens sur des sites externes que tu ne peux pas faire modifier (duplicate content oblige). Une autre solution consiste à utiliser la balise "canonical"
 
WRInaute occasionnel
la réécriture c'est bien :
Code:
RewriteRule ^nouvelle-adresse.html /ancienne-adresse.php [L]

la ligne que j'ai ecrite dans mon htaccess fonctionne bien.
Si dans mon naviguateur je met :
http:...... /nouveaurepertoire/mapage.html
j'ai bien ma page qui s'affiche sauf que je perd mon style css.
 
WRInaute passionné
il faut adapter le chemin du css avec le chemin absolu (commençant par /)


Une autre solution consiste à mettre une balise <base href="/repertoireorigine/"> dans le <head>
 
WRInaute occasionnel
merci pour vos conseils que j'ai bien pris en compte.

j'ai cependant un dernier soucis.
a l'origine j'ai donc un page .php dans laquelle j'ai donc du php et des requettes sql.
lorsque la page .php est réécrite en .html mes requettes sql ne fonctionnent plus et j'ai donc des message d'erreur.

Savez vous d'ou peut provenir le problème ?
 
WRInaute accro
Tu affiches bien une extension html que tu réécris en php ? Dans ce sens là il ne devrait pas y avoir de problème, il faudrait chercher l'origine de l'erreur ailleurs.
Quels sont tes messages d'erreurs ?
 
Discussions similaires
Haut