2010-09-17 6 views
0

J'ai un site configuré avec un index, etc. Je souhaite rediriger uniquement le trafic venant directement vers www.example.com vers www.example.com/foo.php. Toutefois, si un utilisateur tente d'accéder directement à www.example.com/index.php ou à l'une des autres pages existantes, la requête doit renvoyer la page appropriée normalement. Je ne peux pas sembler envelopper ma tête autour de ces règles de réécriture. Comment pourrais-je accomplir cela avec .htaccess?Utilisation de .htaccess pour rediriger uniquement le trafic vers la racine vers une page spécifique

Répondre

4

Vous pourriez vous en sortir avec juste changer le DirectoryIndex-/foo.php:

DirectoryIndex foo.php 

Cependant, si vous vouliez utiliser mod_rewrite réécrire effectivement l'URL, il y a quelques façons d'y parvenir, mais le clearist est de vérifier que si la ressource est une chaîne vide (la racine a été demandé, et l'entrée dans RewriteRule.htaccess fichiers ne contient pas de slash):

RewriteEngine On 

RewriteRule ^$ /foo.php 

Toute requête au serveur qui n'est pas pour / sera simplement ignorée et routée par Apache comme d'habitude.

+0

A travaillé sans faille et une réponse si rapide. Des conseils sur la façon d'apprendre ces règles de réécriture bien? –

+0

@Oren: Génial. En dehors de la lecture de la documentation, de nombreux cas "typiques" ont été demandés et répondus ici, donc il est possible d'apprendre un peu de choses à partir des réponses que j'imagine. Si vous avez un serveur de test local, l'utilisation de ['RewriteLog'] (http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritelog) avec un niveau de' RewriteLogLevel' élevé peut vous aider à avoir une idée de Qu'est-ce qui se passe à l'interne? La plupart d'entre elles ne sont que des expressions régulières, de la ruse et des tâtonnements, heh, il faut donc un peu de temps pour s'y habituer. –

Questions connexes