2009-12-29 7 views
0

j'ai suivante page 404 .....htaccess redirect problème

RewriteCond% {REQUEST_FILENAME}! -f RewriteRule (. +) $? File = $ 1 [L]

mais il est montrer cette page à tous les répertoires et l'événement de page le répertoire racine

Répondre

1

Assurez-vous que le moteur de réécriture est activé dans .htaccess ou votre déclaration vhost. En outre, vous devez vérifier si des répertoires ou des liens symboliques existent pour la requête. Voici un exemple mis à jour:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule (.+)$ /404.php?page=$1 [L] 

Apache dispose également d'un gestionnaire de document pour les réponses 404/non-trouvées. Vous pouvez accéder au fichier demandé via l'en-tête REQUEST_URI. Voici un exemple avec les règles Apache correspondant et PHP 404 fichier gestionnaire d'erreur:

.htaccess:

ErrorDocument 404 /404.php

404.php:

<?php 
echo "Tried to access: {$_SERVER['REQUEST_URI']}"; 
?> 

Je préfère le gestionnaire ErrorDocument, comme Apache enregistrera toujours le code de réponse 404, ce qui est utile pour générer des analyses pour les pages manquantes/liens rompus.