2010-01-12 18 views
1

J'ai travaillé autour de la solution pour transformer tous les URI en une seule page via ErrorDocument.Comment puis-je obtenir ErrorDocument dans .htaccess pour sortir un mauvais paramètre uri?

La raison derrière cela est d'envoyer des fichiers et des dossiers (nice urls) à une page. Cependant, j'ai besoin que la chaîne URI soit envoyée à index.php? Uri = string. Est-ce possible via ErrorDocument, ou comment je fais cela?

donc je dois réécrire le

http://www.something.com/games/specific-game

à

http://www.something.com/index.php?uri=/games/specific-game

Est-ce possible à tout, si, comment?

Répondre

2

Si votre serveur prend en charge côté serveur comprennent (SSI), vous utilisez les touches suivantes 404.shtml comme ErrorDocument:

<html> 
<header> 
<meta http-equiv="Refresh" content="0; url=/index.php?uri=<!--#echo var="REQUEST_URI" -->"> 
</header> 
</html> 

EDIT: il existe un moyen plus simple: créer un fichier PHP comme ErrorDocument et vous pouvez faire quelque chose sous le soleil dedans! :)

EDIT2: vous pouvez accéder à l'URI d'origine en utilisant $_SERVER['REQUEST_URI']

EDIT3: diable, si vous êtes à redirigez index.php sur le même hôte, vous pouvez simplement définir ce fichier index.php comme ErrorDocument et détecter si le demande est redirigé de 404 erreur en vérifiant si $_SERVER['REDIRECT_STATUS'] == '404'

+0

Oui, mais .. J'ai besoin d'obtenir cette URI l'utilisateur entré et était incorrect .. est-ce envoyé comme variable à tel php ErrorDocument alors? – Skuta

+0

new info: cela ne fonctionne pas, car il est redirigé vers cet index.php? Uri = Skuta

+0

ce qui signifie que votre serveur ne supporte pas SSI alors .. il suffit d'utiliser PHP alors. vous pouvez utiliser '$ _SERVER ['REQUEST_URI']' pour accéder à l'URI d'origine. – Lukman