.htaccess qui redirige vers une page spécifique (accueil)

Eléphanteau du PHP | 34 Messages

30 déc. 2013, 17:58

Bonjour à tous,

Je souhaite faire une redirection sur mon site, afin que lorsque le visiteur arrive sur le site, il arrive directement sur la page d'accueil.
Je travaille en local, et ma gestion des pages se fait grâce à la page index.php, dont l'URL est http://localhost/PERSO/mon_dossier/
Je souhaite donc que la redirection se fasse vers http://localhost/PERSO/mon_dossier/accueil

Actuellement, j'ai un .htaccess à la racine de mon site qui contient le code suivant:

Code : Tout sélectionner

RewriteEngine on RewriteRule ^([a-z0-9\-]+)$ ?slug=$1
Ce code permet juste de réécrire les url proprement.

Quelqu'un peut-il m'aider?
D'avance merci!

alain56_
Invité n'ayant pas de compte PHPfrance

31 déc. 2013, 00:16

As tu essayé ce code dans ta page index.php ? Ou bien directement le html dans une page index.html ?

echo "<html><head><meta http-equiv=\"refresh\" content=\"0; url=http://localhost/PERSO/mon_dossier/accu ... ody></html>"

Eléphanteau du PHP | 34 Messages

31 déc. 2013, 19:39

Bonsoir,

Je viens d'essayer avec ce code, et ça ne fonctionne pas...
Mais merci pour votre intervention ;-)

Je vous avoue que j'ai du mal à solutionner cela, je ne sais pas trop comment rechercher ce que je souhaite

alain56_
Invité n'ayant pas de compte PHPfrance

01 janv. 2014, 09:37

Curieux !
Je viens de créer sur mon serveur chez OVH ce petit programme PHP que j'ai appelé "test.php"

<?php
echo "<html><head><meta http-equiv=\"refresh\" content=\"0; url=php-debutant/htaccess-qui-redirige-vers ... ody></html>"
?>

qui me redirige bien vers ton post ! vérifies en exécutant mon URL !
http://start5g.ovh.net/~famillevy/test.php

quand tu dis qu'il ne fonctionne pas chez toi, as tu un message d'erreur ?

Eléphanteau du PHP | 34 Messages

01 janv. 2014, 15:17

Quand je dis que cela ne fonctionne pas, c'est juste que lorsque je me rends à la racine de mon projet (http://localhost/PERSO/mon_dossier/), je ne suis pas redirigée vers http://localhost/PERSO/mon_dossier/accueil comme je le souhaite.
Mais je n'ai pas de message d'erreur.

Pour info, voici ce que contient mon index.php:
<?php
$auth = 0;
include 'lib/includes.php';
include 'lib/image.php';

/**
* GESTION des PAGES 
**/
$slug = $db->quote($_GET['slug']);
$select = $db->query("SELECT * FROM posts WHERE slug = $slug AND type='page'");


$page = $select->fetch();
$page_id = $page['id'];
$title = $page['name'];

/**
* GESTION des NEWS 
**/
$posts = $db->query("
        SELECT * 
        FROM posts 
        WHERE type='post'
")->fetchAll();


include 'partials/header.php';
?>

<div class="col-md-8">
    <!-- POUR LES PAGES -->
    <article id="main" class="row featurette">
        <h3><?= $page['name']; ?></h3>
        <div class="col-md-7">
            <p><?= $page['content']; ?></p>
        </div>
    </article>
Dans ce fichier, j'inclus entre autres le fichiers constants.php, je me permets de vous mettre également le contenu de ce fichier car il pourrait peut être avoir son importante:
constants.php:
<?php
define('WWW_ROOT', dirname(dirname(__FILE__)));

$directory = basename(WWW_ROOT);
$url = explode($directory, $_SERVER['REQUEST_URI']);

// si je suis à la racine
if(count($url) == 1){
    define('WEBROOT', '/');
}else{
    define('WEBROOT', $url[0] . $directory.'/');
}

define('IMAGES', WWW_ROOT . DIRECTORY_SEPARATOR . 'img');
Dois-je activer un module/extension spécifique dans WAMP?

Je ne sais pas, simple question...


En tout cas merci pour votre aide ;-) Et bonne année!

alain56_
Invité n'ayant pas de compte PHPfrance

02 janv. 2014, 09:15

Effectivement, la balise meta url ne fonctionne que s'il n'y a pas eu d'autres balises html qui précèdent !
Mais peut être pourrais tu regarder vers les fonctions php ob_start() ob_flush() qui permettraient de placer la balise meta url à n'importe quel endroit du script ! cf http://php.net/manual/fr/function.ob-start.php
Je ne suis pas un spécialiste de php... mais pourquoi ne structures tu pas autrement tes programmes, en ne plaçant sur ta racine, qu'une page de redirection vers ta page d'accueil sans rien d'autre, puis mettre en début de ta page d'accueil ton code d'initialisation ?