Redirections permanentes avec CakePhp

Discussion dans 'URL Rewriting et .htaccess' créé par Elianora la blanche, 6 Août 2011.

  1. Elianora la blanche
    Elianora la blanche WRInaute discret
    Inscrit:
    20 Juillet 2010
    Messages:
    50
    J'aime reçus:
    0
    Bonjour,

    j'ai un site développé avec CakePhp qui était précédemment en PHP simple.
    Jusqu'à ce que j'utilise CakePhp, je ne faisais jamais d'URL Rewriting.

    La version précédente de mon site comportait donc des pages de type /liste.php?edition=08 qui s'écrivent aujourd'hui /edition/08

    je suis loin d'être experte en rewriting et je n'arrive pas à rediriger /liste.php?edition=08 vers /edition/08 (qui est une URL ré-écrite par CakePhp), ça me fait une erreur 404 (normal)

    voici un extrait de mon htaccess, il y a surement des choses qui se contredisent, mais je ne sais pas quoi

    Code:
    SetEnv PHP_VER 5
    SetEnv REGISTER_GLOBALS 0
    SetEnv SESSION_USE_TRANS_SID 0
    RewriteEngine on
    
    <IfModule mod_rewrite.c>
    	# retrait de la chaine ?CAKEPHP= et ?PHPSESSID= des URLs
    	RewriteCond %{QUERY_STRING} CAKEPHP=(.*)$
    	RewriteRule (.*) %{REQUEST_URI}? [R=301,L]
    	
    	# redirection d'anciennes URLs indexées
    	RewriteRule ^variable$ / [R=301,L]
    	rewriteRule ^cartes-hasard.php$ /cartes/cartes_hasard [R=301,L]
    	
    	RewriteRule ^liste.php?edition=([0-9]*)$ /edition/$1 [R=301,L]
    	RewriteRule ^liste.php?edition=([0-9]*)&page=([0-9]*)$ /edition/$1/page:$2 [R=301,L]
    	RewriteRule ^affiche-carte.php?id=([0-9]*)&PHPSESSID=(.*)$ /carte/$1 [R=301,L]
    	RewriteRule ^affiche-carte?id=([0-9]*)&PHPSESSID=(.*)$ /carte/$1 [R=301,L]
    	RewriteRule ^affiche-carte.php?id=([0-9]*)$ /carte/$1 [R=301,L]
    	RewriteRule ^affiche-carte?id=([0-9]*)$ /carte/$1 [R=301,L]
    	
    	# redirection des URLs avec / final vers la même URL sans / final
    	RewriteCond %{REQUEST_FILENAME} !-f
    	RewriteCond %{REQUEST_FILENAME} !-d
    	RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|)$
    	RewriteRule ^(.*)$ http://www.tcg-seigneurdesanneaux.net/$1 [L,R=301]
    	
    	# redirection de domain.tld vers www.domain.tld
    	RewriteCond %{HTTP_HOST} !^www\.tcg-seigneurdesanneaux\.net [NC]
    	RewriteRule (.*) http://www.tcg-seigneurdesanneaux.net/$1 [QSA,R=301,L]
    	
    	# redirection de index.php (et autres extensions) vers /
    	RewriteCond %{REQUEST_URI} ^/index.(htm|html|php)$
    	RewriteCond %{THE_REQUEST} /index.(htm|html|php)
    	RewriteRule ^(.*)index.(htm|html|php)$ /$1 [R=301,L]
    	
    	# redirection d'URL CakePhp
    	RewriteCond %{REQUEST_FILENAME} !-d
    	RewriteCond %{REQUEST_FILENAME} !-f
    	RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
    </IfModule>
    merci d'avance, je ne sais plus trop que faire

    NB : je suis chez OVH, j'ai eu des problèmes avec RedirectPermanent
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 078
    J'aime reçus:
    295
    Tu aurais eu plus de chance d'avoir une réponse sur le forum francophone: http://forum.cakephp-fr.org/
    Tu peux créer un AppError:
    http://cakebaker.42dh.com/2006/06/15/writing-a-custom-error-handler/
    http://api.cakephp.org/class/error-handler

    Et faire ta redirection 301 dans la méthode MissingController:
    PHP:
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br />class AppError extends ErrorHandler </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    public function missingController</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$params</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        die</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">env</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'REQUEST_URI'</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br />}<br /></span><span class="syntaxdefault">?><br /></span></span>
    A partir du REQUEST_URI tu rediriges en PHP vers ta bonne URL.
    C'est bien plus simple qu'en .htaccess
     
  3. Elianora la blanche
    Elianora la blanche WRInaute discret
    Inscrit:
    20 Juillet 2010
    Messages:
    50
    J'aime reçus:
    0
    merci,
    comme je pensais vraiment le faire en htacces, j'ai préféré demander sur un forum axé htaccess plutôt que sur le support CakePhp.

    En tout cas, ça fonctionne ;)
     
Chargement...
Similar Threads - Redirections permanentes CakePhp Forum Date
Présentation et bouteille à la mer pour redirections permanentes Netlinking, backlinks, liens et redirections 4 Avril 2020
Redirections permanentes 301 pour produits arrêtés définitivement e-commerce 27 Novembre 2019
Possible de faire des redirections permanentes vers des urls avec ancres Netlinking, backlinks, liens et redirections 27 Mai 2015
Search Console Forte hausse du nombre de redirections Problèmes de référencement spécifiques à vos sites Vendredi à 16:30
WordPress Refonte des catégories, structure et format des URL, redirections 301 Référencement Google 17 Juillet 2020
Redirections 301 Problèmes de référencement spécifiques à vos sites 3 Juillet 2020
Problèmes des redirections 301 en transparence Noms de domaine et référencement 12 Mars 2020
Problème sur les redirections de pages profondes URL Rewriting et .htaccess 4 Décembre 2019
Redirections des images - Refonte Débuter en référencement 14 Novembre 2019
Redirections français > anglais Référencement international (langues, pays) 16 Septembre 2019