Redirection complexe

Nouveau WRInaute
Bonjour,

Je voudrais faire en sorte que sur mon site, les utilisateurs soient obligés de passer par la première page, c'est à dire que quelque soit l'adresse qu'ils rentrent ou que si ils passent par leur favoris ils soient automatiquement re-dirigé vers la première page. Un fois qu'ils sont passé par la première page, ils peuvent naviguer comme bon leur semble.

J'ai déjà testé un certains nombre de technique, notament en utilisant des cookies, le pb est que 99% des utilisateurs de mon site (un intranet) ne peuvent pas les utiliser, ce qui provoque donc des pbs au niveau de la connection.

Sur une documentation Apache, j'ai vu que ça pouvais être possible de mettre ce type de redirection via un fichier .htaccess, j'ai donc essayé et voici mon script :

Code:
options +FollowSymLinks
RewriteEngine On
RewriteOptions inherit
RewriteCond %{REQUEST_FILENAME} !index.htm [NC]
RewriteCond %{HTTP_REFERER} !%{HTTP_HOST} [NC]
RewriteRule /* http://%{HTTP_HOST}/index.htm [L,R]

Le pb, c'est que la redirection fonctionne, mais une fois que je suis sur la première page et que je veux aller sur une autre page, je suis automatiquement redirigé vers la page la première page.

Est-ce que quelqun pourrait me donner un petit coup de main là-dessus, ar là je sais plus quoi faire

Merci D'avance.

Cordialement.

François.
 
WRInaute discret
Si tu veux que les visiteurs soient obligés de passer par ta page d'accueil, il suffit de ne référencer que la page d'accueil.

Pourquoi leur donner une expérience désagréable en prenant le contrôle de leur navigateur après les avoir trompé avec les résultats d'une recherche ?
 
Nouveau WRInaute
Oui mais dans mon cas il s'agit d'un intranet en Entreprise, ce qui signifie que les utilisateurs ne passent pas par un moteur de recherche pour rentrer sur le site, ils utilisent des adresses qu'ils tapent en dur dans le navigateur, ou alors leur favoris, moi malheureusement j'ai pour contrainte qu'ils passent obligatoirement par la première page et donc de faire en sorte qu'ils soient redirigé.


Ca fait plusieurs jours que je recherche des infos sur ce truc là mais je ne trouve rien
 
WRInaute discret
Ca me semble difficile comme truc...

Tu à comme possibilité les Cookies. Mais ce n'est pas valable dans 100% des cas...

Comme c'est un Intranet on peut supposer qu'il n'y à pas de Proxy! Don les IP sont bien différencié. Ne pourrait tu pas detecter l'IP. Vérifier avec une BDD si le Gars est passé pr la Page d'acceuil depuis moins de X heures.. Si oui continuer. Ca me parrait un peut compliqué comme procedure..

Une autre idée. En utilisation la reference (Page précédente) . Si la page précdente n'est pas sur le Site tu redirige vers la page d'acceuil. Tu met le script sur toute les pages, sauf la page d'acceuil... Le probleme c'est que la aussi c'est pas toujours valable!


C'est des idées en vrac.. Mais j'espere t'avoir au moins donné des idées!
 
Nouveau WRInaute
L'idée sur l'adresse IP, ma parait assez interessante, et pourrait constituer une solution si je ne trouve rien de plus simle et de moins lourd.

Dans l'idée de l'installation d'un tel système, comment il faudrait faire, ce serait possible de tout mettre dans un fichier .htaccess, ou alors il faut developper tout un module, et mettre dans les pages du code pour contrôler tout ça ?
 
WRInaute discret
Moi je develloperai un script PHP avec un base Mysql. Si tu retient cette solution je te filerai un coup de main bien volontiers... Ca parait lourd mais avec une petite table et un petit script ca devrait être OK.

En plus ca peut compter les visiteur enn temps reel.. :lol:

Tiens moi au courant si tu fait ce choix..
 
Nouveau WRInaute
Juste une question, si on developpe un module en Php, il faut inserer du code dans chaque page c'est ça ?

Par ailleurs les pages qui sont concernée sont en jsp ça ne risque pas de poser de pb ?
 
WRInaute discret
Exact,

1 ligne ou 2.. du genre
<?php include ('testprovenance.inc.php'); ?>

Je sait pas si ca posera probleme ou pas.. le mieux c'est que tu teste:
Insere
<?php
echo "<b>Testing..</b>";
?>

Dans ta page...
Et regarde si Testing Apparait...
 
Nouveau WRInaute
Oula, c'est bcp plus compliqué que cela, comme je te l'ai dis je travail sur un intranet mais pas en tant que programmateur, mais dans la gestion du projet lié à son developpement. La partie en jsp que j'évoquais, n'est pas sous mon contrôle, et c'est pour ça que j'étudie la faisabilité de se projet.

Par ailleurs, ma mise en place de balises php, représente un travail collossal, car il s'agit en effet d'inserer la balise et de changer le nom de plus de 900 pages ...!

Tout en sachant que l'entreprise n'a pas forcement les ressources en interne pour maintenir un tel système en place.

C'est pour ça que je cherchais à le faire via un fichier htaccess car ça simplifierait tout en therme de logisitiqe et de gestion du site car on centralise tout.

Je garde tout de même cette idée sous le coude, car elle me semble bonne et surtout très fiable.
 
WRInaute discret
eatwood1st a dit:
Je voudrais faire en sorte que sur mon site, les utilisateurs soient obligés de passer par la première page, c'est à dire que quelque soit l'adresse qu'ils rentrent ou que si ils passent par leur favoris ils soient automatiquement re-dirigé vers la première page. Un fois qu'ils sont passé par la première page, ils peuvent naviguer comme bon leur semble.

c'est assez complexe, surtout si tu veux que les utilisateurs qui sont sur une page ne retombent pas systematiquement sur l'index a chaque fois qu'ils vont en voir une autre. AMHA tu devrais utiliser des sessions (ou une table dans une BDD, avec IP de l'utilisateur et derniere date d'acces, par exemple. Lorsqu'il arrive sur une page tu verifie la date et si c'est trop ancien tu l'envoie sur la page index, sinon tu update la date...)

Ben
 
Nouveau WRInaute
Merci pour ton conseil Ben, il semble effectivement que ce soit la solution qui soit la plus intéressante malgré que ce soit lourd à mettre en place.

Ce sera sans doute celle que je vais retenir dans mes recos à moins quelqun connaisse une manière de proceder bcp plus simple ?
 
WRInaute discret
Le probleme avec le Referent peut ne pas être renseigné..... Les Crawlers deja (à mon avis) ne doivent pas passer le referent (Si quelqu'un le sait merci pour l'info).

Mais lers navigateur Lambda aussi (!suivant le niveau de Secu je presume..) aussi...
 
Nouveau WRInaute
c'est un peut un système comme celui-ci que je recherchais à la base

Si je me refere à mon code d'origine :

Code:
options +FollowSymLinks 
RewriteEngine On 
RewriteOptions inherit 
RewriteCond %{REQUEST_FILENAME} !index.htm [NC] 
RewriteCond %{HTTP_REFERER} !%{HTTP_HOST} [NC] 
RewriteRule /* http://%{HTTP_HOST}/index.htm [L,R]

Comment est-ce que je peut mettre cette solution en place ?

J'en profite pour tous vous remercier pour l'aide que vous m'apporter.
 
Discussions similaires
Haut