2010-11-29 5 views
0

Par exemple: www.example.com/about.phpComment ignorer l'accès aux fichiers php avec mod_rewrite?

Je ne veux pas les fichiers avec l'extension .php être disponible pour atteindre, afficher une page 404 à la place.

J'ai les fichiers dans le dossier racine: content.php about.php footer.php etc ... Maintenant, je peux accéder à ces fichiers en tapant dans la barre d'adresse. Je veux limiter cela.

Comment puis-je faire cela?

+0

Voir mon article ci-dessous. Mod réécriture n'est pas nécessaire (ce n'est pas non plus la meilleure solution) pour quelque chose d'aussi simple. –

Répondre

0
RewriteRule \.php$ /path/to/page/404.html 
6

Une meilleure approche qui évite les frais généraux et la complexité des mod_rewrite est simplement pas mettre les fichiers que vous ne voulez pas atteint par url dans le dossier racine. Vous pouvez simplement les mettre ailleurs et les inclure à partir de là; simple et (plus) sécurisé, mais pour une raison quelconque, cela ne semble pas être de notoriété publique.

Une structure exemple pourrait être

project/ 
project/root 
project/lib 

Votre code public (par exemple index.php) vivraient dans le projet/racine, et ce serait la racine du site Web. Votre code inclus vivrait dans le projet/lib peut être facilement inclus en utilisant require, include, etc.

Pas de mod_rewrite. Très simple.

+1

Oui, mais de cette façon, je peux toujours accéder à ces fichiers. – Maxxon

+0

Ah, si vous utilisez mod_rewrite vous * ne serez pas en mesure d'accéder aux fichiers via URL, c'est le point. Dans les deux approches, vous serez toujours en mesure de modifier les fichiers à l'aide d'un éditeur, ce qui est la seule façon d'y accéder. –

+0

J'ai implémenté la solution d'El Yobo sur mon site. J'ai placé tous mes inclusions dans un répertoire '/ pages', puis j'ai ajouté' RewriteRule^pages /(.*)$/404 [R = 301, L] 'pour expulser les personnes qui essayaient d'accéder aux inclusions directement. – Paul