Question

J'ai un problème avec la barre d'adresse (dans le navigateur). L'URL de la page d'accueil de mon site ressemble à ceci: http://localhost/Website/index.php

Si j'écris .../Website/home.php il charge la page de home.php. Je pense que ce n'est pas sûr si quelqu'un peut aller à une de la page Web qu'ils veulent se connaître son adresse. Je veux bloquer la redirection automatique des URL dans la barre d'adresse. S'il vous plaît quelqu'un me aider à faire en sorte que si quelqu'un écrire l'adresse .../home.php il redirige le navigateur vers index.php comme la page par défaut.

Pas de solution correcte

Autres conseils

L'ensemble du concept du world wide web est que chaque ressource (par exemple, chaque page web) a un identifiant de ressource unique (adresse). Il fait partie intégrante de la façon dont l'Internet fonctionne et vous devez s'y conformer, plutôt que l'éviter.

Assurez-vous que vous avez un beau gros lien vers votre page d'accueil et les gens vont l'utiliser si elles atterrissent sur une autre page et ne peuvent pas trouver ce qu'ils veulent.

J'espère que cette aide.

En bref: vous ne pouvez pas faire cela. Comme d'autres ont mentionné, PHP est un langage côté serveur qui signifie qu'il ne peut pas contrôler le navigateur (à savoir empêcher une personne de changer l'URL). Lisez et suivez les liens dans Comment fonctionne le PHP? pour obtenir le savoir la différence entre le côté serveur et les langues du côté client.

Les articles Wikipeda World Wide Web , Uniform Resource Locator (URL) et serveur Web pourrait également être intéressant pour vous d'obtenir une compréhension de base comment le Web fonctionne et ce qu'il est sur les URL.

Mais vous pouvez contrôler quels fichiers sont accessibles. Il y a deux façons:

Configuration du serveur Web

La plupart (tous?) Serveur web vous permet de configurer des règles pour contrôler les fichiers doivent être accessibles (aka le contrôle d'accès). Son est un exemple comment le faire avec le serveur web Apache .

PHP: Front Controller

Vous pouvez aussi le faire avec PHP directement (et une petite configuration du serveur Web). La magie mot-clé est son modèle Front Controller . Ceci est par exemple une classe qui agit comme un point d'entrée unique à votre application. Cela signifie que chaque demande par exemple à

 http://localhost/Website/home.php

ou

http://localhost/Website/foo/bar.php

est redirigé (transmis, mais vous voulez le nommer) et traitées par

 http://localhost/Website/index.php

Donc à la fin, vous pouvez et décider quel contenu que l'utilisateur obtient pour voir s'il tente d'accéder à une certaine URL.
Cela vous donne plus de contrôle sur le (regard des) URL, mais vous devez faire plus d'efforts pour le configurer.

Si vous êtes intéressé par la façon dont cela fonctionne, je suggère de jeter un oeil à la Zend Framework qui met en œuvre ce modèle.

Question ouverte ...

Bien que vous peut ce faire, la question est de savoir si vous devez le faire. Si vous ne voulez pas home.php soit accessible, pourquoi ne vous mettez sur votre serveur web en premier lieu?

Ou peut-être vous avez une mauvaise image de la structure d'un site Web dans votre tête. simple site est composé de plusieurs pages (La plupart du temps), par exemple.

index.php   // is the main page
about.php   // is about the site or you
news.php    // contains the latest news you provide
archive.php // older news or articles
...

Il est même voulu qu'un utilisateur / visiteur peut accéder à ces pages en entrant directement l'URL dans la barre d'adresse ou via un signet. Voici comment un site Web ou le Web fonctionne.

PHP ne peut pas le faire; il est une technologie côté serveur et ne peut donc pas modifier le comportement du navigateur. Il suffit de ne pas mettre d'autres fichiers dans le répertoire et le navigateur informe l'utilisateur qu'un tel fichier existe quand ils essaient de parcourir l'itinéraire.

Vous pouvez obtenir ce résultat, même sans cadres. Si vous utilisez javascript et ajax pour charger dynamiquement le contenu de votre URL ne changera pas.

Alors que je ne recommande jamais cela pour cause de googles ce serait la façon la plus agréable de le faire et encore travailler très bien avec PHP

Je prendrais Sohnee des conseils, mais si vous voulez vraiment vous pouvez créer l'illusion en utilisant des cadres HTML.

Je suis d'accord avec les réponses affichées récemment.

Mais si vous n'avez pas besoin HTML vous pouvez aller dans FLASH ou Java Applet, une fois ceux-ci sont chargés, vos URL ne change plus.

chose étrange de vouloir faire, mais d'une manière simple (et pas bon pour quoi que ce soit, mais de petits sites) est d'utiliser en-tête (LOcation: xxxx).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top