Bonjour,

J'ai pris un hébergement chez 1&1 pour mon site et malheureusement tous ne fonctionne pas comme en local. Notamment aux niveaux de la redirection 404 si l'utilisateur va sur une page qui n'existe pas. Le navigateur charge puis finis par m'indiquer La page n'est pas redirigée correctement. Sachant que la réécriture d'url fonctionne bien.

Je rappel qu'en local tous marche bien, voilà mon .htaccess
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
 
# Réécriture simple des pages principales                                                        
 
RewriteRule services/([a-zA-Z0-9\-]+).html                           index.php?p=$1
RewriteRule contact/([a-zA-Z0-9\-]+).html                            contact.php?p=$1
 
RewriteRule enseignement/([a-zA-Z0-9\-]+).html                       secteur.php?p=$1
 
RewriteRule formation/([a-zA-Z0-9\-]+).html                          secteur.php?p=$1
RewriteRule formation/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+).html         secteur.php?p=$1&r=$2
 
RewriteRule conseil/([a-zA-Z0-9\-]+).html                            secteur.php?p=$1 
RewriteRule conseil/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+).html           secteur.php?p=$1&r=$2
 
# Erreur prévu 
RewriteRule erreur/([0-9]+).html                                     erreur.php?p=$1
# --------------
# Erreur général
 
ErrorDocument 403  http://site.fr/erreur/403.html
ErrorDocument 404  http://site.fr/erreur/404.html
Et voilà la manière dont je fais ma redirection sur le php :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
 
// Inclusion de RACINE_URL
if(isset($_GET['p']) && !empty($_GET['p'])){
 
    $p = htmlspecialchars($_GET['p']);
 
   // Pages autorisées 
    $pages_autorisees = array('index'           => array('Accueil', 'page/index.php'),
 
                              'page2'    => array('page2', 'page/page2.php') 
 
                               // ....
 
                              );
 
 
 
    if(array_key_exists($p, $pages_autorisees)){
 
    // Vérifications
 
    }
 
    else{ // Si la page n'est pas autorisée
 
         header('location:'.RACINE_URL.'erreur/404.html');
 
    }   
 
}
 
else
 
header('location:'.RACINE_URL.'services/index.html');

Voilà, merci de votre aide smile