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.