Ho acquistato un dominio per la mia applicazione web (www.shoes-market.org), ho caricato la mia applicazione che funziona correttamente in locale ma su Altervista ho problemi di reindirizzamento.
La pagina principale (index.php) viene aperta ma poi quando provo a richiamare qualunque altra pagina html mi ritorna un errore 404 il che è impossibile dato che i file ci sono tutti.
Non so se dipende dalla configurazione dell'htaccess oppure dal mio FrontCrontoller.
Vi metto il codice di entrambi
htaccess
Codice:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.shoes-market\.org$
RewriteRule ^(.*) https://www.shoes-market.org/index.php [R=301,L]
</IfModule>
CFrontController
Codice PHP:
class CFrontController
{
/**
* Metodo che viene richiamato ogni volta che viene effettuata una richiesta all'interno del sito. Si
occupa di richiamare i vari controllori necessari per l'esecuzione della richiesta effettuata (con
eventuali parametri).
* @param string $path
*/
public static function run(string $path)
{
ini_set('session.gc_probability', 10);
ini_set('session.gc_maxlifetime', 3600);
error_reporting(E_ERROR | E_PARSE);
$gs = CGestioneSessioni::getInstance();
$input = new VGestioneInput();
$valore_cookietest = $input->passaInputValoreCookieTest();
if ($gs->isLoggedCust() || $gs->isLoggedAdmin()) {
if ($path === "www.shoes-market.org" || $path === "www.shoes-market.org/index.php") {
setcookie("cookie_test", "cookie_value");
CGestioneSchermate::recuperaHome();
} else {
error_reporting(E_ERROR | E_PARSE);
if ($valore_cookietest == "cookie_value") {
$cookie = true;
} else {
$cookie = false;
}
if ($cookie == true) {
$gs = CGestioneSessioni::getInstance();
$res = explode("/", $path);
array_shift($res);
array_shift($res);
array_shift($res);
if ($res[0] != '') {
$controller = "C" . $res[0];
$dir = 'Controller';
$eledir = scandir($dir);
if (in_array($controller . ".php", $eledir)) {
if (isset($res[1])) {
$function = $res[1];
if (method_exists($controller, $function)) {
$param = array();
for ($i = 2; $i < count($res); $i++) {
$param[] = $res[$i];
}
$num = count($param);
if ($num == 0) $controller::$function();
else if ($num == 1) $controller::$function($param[0]);
else if ($num == 2) $controller::$function($param[0], $param[1]);
}
}
}
} else {
$controller = "CGestioneSchermate";
$function = "recuperaHome";
$controller::$function();
}
} else {
CGestioneSchermate::showCookie();
}
}
} else {
if ($path === "www.shoes-market.org" || $path === "www.shoes-market.org/index.php") {
setcookie("cookie_test", "cookie_value");
CGestioneSchermate::showHome();
} else {
error_reporting(E_ERROR | E_PARSE);
if ($valore_cookietest == "cookie_value") {
$cookie = true;
} else {
$cookie = false;
}
if ($cookie == true) {
$gs = CGestioneSessioni::getInstance();
$res = explode("/", $path);
array_shift($res);
array_shift($res);
array_shift($res);
if ($res[0] != '') {
$controller = "C" . $res[0];
$dir = 'Controller';
$eledir = scandir($dir);
if (in_array($controller . ".php", $eledir)) {
if (isset($res[1])) {
$function = $res[1];
if (method_exists($controller, $function)) {
$param = array();
for ($i = 2; $i < count($res); $i++) {
$param[] = $res[$i];
}
$num = count($param);
if ($num == 0) $controller::$function();
else if ($num == 1) $controller::$function($param[0]);
else if ($num == 2) $controller::$function($param[0], $param[1]);
}
}
}
} else {
$controller = "CGestioneSchermate";
$function = "showHome";
$controller::$function();
}
} else {
CGestioneSchermate::showCookie();
}
}
}
}
}
Tutti i metodi richiamati nelle varie pagine html sono all'interno di una cartella Controllere devono passare sempre per il FrontController.
Spero che qualcuno possa aiutarmi con il mio problema