Bonjour,

J'ai crée un site en prenant la base du tutoriel et tout fonctionne très bien en local et sur un hébergement OVH. Cependant il y a un problème avec l'hébergeur final du site Oxyd. En effet les serveurs de cet hébergeur semblent avoir des règles spécifiques pour la syntaxe des .htaccess, si bien que j'ai dû les modifier quelque peu en ajoutant un / avant webroot dans le premier (à la racine du site) et un autre devant index.php dans le second (dans le répertoire webroot). Comme ceci:

RewriteEngine On
RewriteRule (.*) /webroot/$1 [L]

et comme ceci:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /index.php/$1 [L]

Pour que les réécritures se fassent bien, j'ai dû modifier les fonctions url et webroot de la classe Router en retirant le / après BASEURL, comme ceci:

static function url($url = ''){
        trim($url,'/'); 
        foreach(self::$routes as $v){
            if(preg_match($v'originreg'],$url,$match)){
                $url = $v'redir']; 
                foreach($match as $k=>$w){
                    $url = str_replace(":$k:",$w,$url); 
                }
            }
        }
        foreach(self::$prefixes as $k=>$v){
            if(strpos($url,$v) === 0){
                $url = str_replace($v,$k,$url); 
            }
        }
        return BASE_URL.$url; 
    }
    static function webroot($url){
        trim($url,'/');
        return BASE_URL.$url; 
    }

Ainsi la page d'accueil du site s'affiche bien, et il est possible d'accéder aux pages en écrivant l'url "entière". Par exemple pour l'index des news, http://www.mondomaine.com/webroot/index.php/news.

Il n'est pas possible d'y accéder par l'url http://www.mondomaine.com/news. Cela me redirige vers l'accueil.

J'ai beau chercher je ne trouve pas l'endroit où il faudrait apporter une modification pour que les réécritures se fassent correctement.

Auriez vous une idée de ce qu'il faudrait faire (ou ne pas faire) pour qu'il n'y ait plus ce soucis de réécriture?

Merci d'avance.

16 réponses


J'ai sensiblement le meme problème avec 1and1, avez vous trouver une solution svp?
Je vous remercie

sonic
Auteur

Malheureusement je n'ai pas trouvé de solution. J'ai finalement choisi de changer d'hébergeur.

je suis aussi chez OVH et pour régler ce soucis, j'ai retiré BASE URL en laissant le '/' et çà fctionne chez moi :)

Haaaaaaaa !!! Merci pour ce post ! Je suis chez Olympe et l'ajout des '/' dans les .htaccess à enfin tout fait fonctionner ! 2 jours de galère !

Bonjour j'ai un problème 500 Internal Server Error. Je suis chez olympe.
birlouz je voudrais savoir si vous avez fait des changements sur le .htacces ou autre ?!

Le .htaccess de la racine :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*) /RepertoireSite/webroot/$1 [L]
</IfModule>

Le .htaccess du /webroot :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) /RepertoireSite/index.php/$1 [L]
</IfModule>

Et là, pour l'instant, ça fonctionne nikel.

oki merci birlouz!!
mais quand tu dis /RepertoireSite c'est /dns/in/olympe/NOMDUSITE?!

Alors /RepertoireSite, c'est un répertoire à la racine dans lequel j'ai mis tous mes fichiers.
Donc oui, dans le cas /dns/in/olympe/NOMDUSITE, c'est /NOMDUSITE.

oki merci beaucoup birlouz!!
Et tu as modifier le fichier Router.php et la variable BASE_URL ?!

Non, pas touché à BASE_URL, je crois bien que j'ai testé et que ça n'a rien changé.

et le fichier le fichier Router.php tu l'as changé ?!
car ça me donne une erreur 500 Internal Server Error !!

Non, rien modifié à part le fichier de conf et les 2 .htaccess.

oki merci !! Mais c'est toujours pareil erreur 500 !!

J'suis pas assez calé là ... je commence tout juste depuis une semaine :-/

Bonjour,

J'ai suivi à la lettre le tuto. Le site fonctionne parfaitement en local mais, une fois sur l'hébergeur (OVH), la home s'affiche mais les liens internes ne fonctionnent pas. J'ai essayé vos solutions mais rien ne fonctionne. Lorsque je clic sur un lien, j'ai juste un "file not found".

Vous pouvez voir le problème sur le site : ici

Merci d'avance

Bonjour,

Regarde ici, surement bientôt une solution

Cordialement,