Problème erreur redirection cakephp

WRInaute discret
Bonjour,
voilà j'ai un petit soucis sur lequel je bloque, site développer avec cakephp 3, impossible de rediriger cette url en erreur:
-http://www.champagne-arnaud-beaufort-fils.fr/index
alors que j'ai pas de soucis pour rediriger l'index.php

contenu de mon htaccess à la racine:
Code:
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>
RedirectPermanent /index.php -http://www.champagne-arnaud-beaufort-fils.fr
RedirectPermanent /presentation -http://www.champagne-arnaud-beaufort-fils.fr
RedirectPermanent /champagne-trepail -http://www.champagne-arnaud-beaufort-fils.fr/gammes
RedirectPermanent /plan -http://www.champagne-arnaud-beaufort-fils.fr/contact
RedirectPermanent /contact/1 -http://www.champagne-arnaud-beaufort-fils.fr/contact
RedirectPermanent /contact/2 -http://www.champagne-arnaud-beaufort-fils.fr/contact
RedirectPermanent /contact/contact/2 -http://www.champagne-arnaud-beaufort-fils.fr/contact
RedirectPermanent /appointment -http://www.champagne-arnaud-beaufort-fils.fr/contact
RedirectPermanent /info -http://www.champagne-arnaud-beaufort-fils.fr
RedirectPermanent /v -http://www.champagne-arnaud-beaufort-fils.fr
RedirectPermanent /infoCookies- http://www.champagne-arnaud-beaufort-fils.fr
RedirectPermanent /print -http://www.champagne-arnaud-beaufort-fils.fr
RedirectPermanent /printiti -http://www.champagne-arnaud-beaufort-fils.fr
RedirectPermanent /printplan -http://www.champagne-arnaud-beaufort-fils.fr/contact
RedirectPermanent /zone-intervention -http://www.champagne-arnaud-beaufort-fils.fr/contact
Si je mais une redirection comme je fais là, pour les autres ça ne fait rien du tout.

contenu de mon htacces dans le dossier webroot:
Code:
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
    RewriteEngine On 
	RewriteCond %{HTTP_HOST} ^-champagne-arnaud-beaufort-fils.fr$ 
	RewriteRule ^(.*) -http://www.champagne-arnaud-beaufort-fils.fr/$1  [QSA,L,R=301]
</IfModule>
<IfModule mod_mime.c>
AddType application/font-woff2 .woff2
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"  
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"
</IfModule>
voilà en plus je ne comprends pas ce que l'erreur est différente de mes autres 404, exemple:
-http://www.champagne-arnaud-beaufort-fils.fr/$

voilà merci de votre aide.
 
WRInaute accro
Il faut faire les redirections dans le .htaccess du webroot.
Ou encore mieux dans le beforeFilter du AppController.
 
WRInaute discret
Bonjour,
les redirections dans le .htaccess du webroot ne fonctionne pas pour moi.
J'ai tester une redirection dans le beforeFilter si la requête est index, ça marche bien en local, mais en ligne j'ai toujours l'erreur..
Merci pour l'aide.
 
WRInaute discret
Bonjour,
possibilité qu'un modérateur déplace le sujet dans: URL Rewriting et .htaccess, j'avais pas fait attention en créent le sujet, mais j'aurais surement plus de réponses dans cette partie.
Merci.
 
WRInaute discret
désolé de re-poster encore mais un mois après toujours pas de réponse ni de déplacement de sujet(j'ai rien dit après édit, faut re-poster pour que ça le déplace? merci), toujours personne pour une petite idée?
 
WRInaute accro
C'est pourtant faisable dans le beforeFilter, je l'ai déjà fait avec Cake 1.x, 2.x et 3.x ... et des centaines d'URLs
 
WRInaute discret
Bonjour
voici mon code pour lequel ça marche sans souci en local, et qui ne marche pas sur le serveur:
Code:
public function beforeFilter(Event $event)
    {
        parent::beforeFilter($event);
        if($_SERVER['REQUEST_URI'] == "/index"){
            $extension = pathinfo($_SERVER['SERVER_NAME'], PATHINFO_EXTENSION);
            if($extension == "fr"){
                $new_domain = "http://www.***.fr";
            }
            elseif($extension != "fr"){
                $new_domain = "http://www.***.com";
            }
            $this->redirect($new_domain);
        }
    }
et le résultat:

voilà je ne comprends pas pourquoi ça ne passe pas? une configuration du serveur? ce qui me fait penser que ça pourrait venir du serveur aussi c'est que j'ai cherché cette erreur partout dans cakephp et impossible de la trouver...
 
WRInaute accro
C'est une 404 de Apache ça, donc le request n'est même pas pris en compte dans Cake.

NB:
PHP:
<span class="syntaxdefault">$extension </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> pathinfo</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_SERVER</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'SERVER_NAME'</span><span class="syntaxkeyword">],</span><span class="syntaxdefault"> PATHINFO_EXTENSION</span><span class="syntaxkeyword">);&nbsp;</span><span class="syntaxdefault"></span>
PATHINFO_EXTENSION c'est pour parser l'extension d'un fichier, pas d'un nom d'hôte (même si ça marche).

NB2: le elseif est un peu une fatalité et pourrait donc être remplacé par un else.
 
WRInaute discret
Bonjour,

merci pour la réponse, du coup d'où ça pourrait venir ? car je ne vois pas d'erreur dans le code et il passe bien en local ?

NB -> merci pour l'information.

NB2 -> entièrement d'accord :) .
 
WRInaute discret
Bonjour,
j'ai finalement trouvé la solution, par contre je ne la comprends pas, si quelqu’un peut m'éclairer?

j'ai supprimer dans le .htaccess à la racine:
Code:
RedirectPermanent /index.php http://www.***.fr

et rajouter dans l'AppController, dans le before filter:

Code:
public function beforeFilter(Event $event)
    {
        parent::beforeFilter($event);
        if($_SERVER['REQUEST_URI'] == "/index" || $_SERVER['REQUEST_URI'] == "/index.php"){
            $extension = pathinfo($_SERVER['SERVER_NAME'], PATHINFO_EXTENSION);
            if($extension == "fr"){
                $new_domain = "http://www.***.fr";
            }
            else
{
                $new_domain = "http://www.***.com";
            }
            $this->redirect($new_domain);
        }



    }

voilà, en tout cas merci pour l'aide ça m'a mis sur la bonne voie.
 
Discussions similaires
Haut