Bonjour,
Je suis en cours de formation développeur web et le PHP n'est pas au programme, du coup je m'initie en parallèle.
J'ai réalisé une petite application grâce à différents cours mais je bloque sur la réécriture d'url malgré plusieurs tentatives de compréhension pour cumuler 2 réécriture.
Rediriger http vers http et garder la suppression des paramètres en url
Je me rends compte que j'ai écris une grosse ânerie
Dans mon index.php, j'ai voulu mettre en pratique le routage en définissant une variable URL comme ceci :
J'ai voulu définir une constante URL pour l'url de base que j'appelle en PHP comme ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part <?= URL ?>
Dans mon index.php, j'ai voulu mettre en pratique le routage
Code : Sélectionner tout - Visualiser dans une fenêtre à part define("URL", str_replace("index.php", "", (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[PHP_SELF]"));
dans un "try catch" je teste si le paramètre "page est vide je renvoi vers la page login comme ceci :
Ensuite avec un switch case je renvoi vers la bonne page, en testant si l'utilisateur est déjà connecté comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 try { if(empty($_GET['page'])) { $page = "login"; } else { $url = explode("/", filter_var($_GET['page'], FILTER_SANITIZE_URL)); $page = $url[0]; }
dans mon htaccess
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 switch($page) { case "login": if (!isset($_SESSION['userConnectValid'])) { $userController->login(); } else { //ici fonction qui affiche un message disant que l'utilisateur est déjà connecté // je le renvoie à l'accueil header("Location:" . URL . "accueil"); } break;
j'ai mis ce qui suit
Code apache : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?page=$1
ce qui marchait très bien jusqu'à ce que veuille ajouter la redirection http vers https comme ça :
Code apache : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 RewriteCond %{HTTP_HOST} ^app\.demo\.domaine\.tld$ RewriteRule ^/?$ "https\:\/\/app\.demo\.domaine\.tld\/" [R=301,L]
Je cherche une source d'informations qui me permettrait de comprendre comment faire, je croyais avoir compris mais ce n'est clairement pas le cas, les différents recherches ne m'ayant pas permis d'aboutir.
J'ai tente comme ça :
Code apache : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?page=$1 RewriteCond %{HTTP_HOST} ^app\.demo\.domaine\.tld$ RewriteRule ^/?$ "https\:\/\/app\.demo\.domaine\.tld\/" [R=301,L]
Qui ne donnerienun page 404 et je ne poste pas mes autres essais par compassion pour vos yeux
Merci d'avance si quelqu'un me lit et pour toutes pistes
edit : Vu le taux de retour quasi nul, je suis de plus en plus inquiet
Je suis aussi preneur de toutes remarques qui fait que c'est le silence total et que cela n'inspire personne de me remettre dans le droit chemin.
Cela va sans dire mais c'est mieux quand c'est dit : je n'attends pas de solution toute faite, juste des pistes pour comprendre et réussir à la faire moi-même
Partager