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
define("URL", str_replace("index.php", "", (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[PHP_SELF]"));
Dans mon index.php, j'ai voulu mettre en pratique le routage
dans un "try catch" je teste si le paramètre "page est vide je renvoi vers la page login 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];
    }
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
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;
dans mon htaccess
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 donne rien un 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