2009-03-11 13 views
0

Ich habe, wie etwas zu schreiben, herausgefunden wieApache, .htaccess - Verbieten direkter Zugriff auf eine Datei, sondern umschreibt erlauben, dorthin zu gehen

www.test.com/test 

zu

www.test.com/test.php. 

Dies ist nützlich geben Sie eine einfachere Browser-Erfahrung und verdecken Sie die Verwendung von PHP. Ich möchte jedoch weiter gehen und nicht zulassen Zugang zu

www.test.com/test.php 

vollständig, und erlauben den Zugriff nur durch

www.test.com/test 

, um Menschen zu verhindern, dass die Verwendung von PHP zu entdecken, indem Sie einfach versuchen, es in eine URL

Das Problem ist, dass wenn ich den Zugriff nicht zuzulassen

www.test.com/test.php 

dann

www.test.com/test 

nicht mehr funktioniert, da die disallow Regel nach dem Umschreiben zu

ausgelöst wird
www.test.com/test.php 

ist erledigt.

Ist das möglich? Irgendwelche alternativen Vorschläge zum Verbergen der verwendeten Programmiersprache sind willkommen.

Antwort

0

Schauen Sie sich die Flags "letzte Regel" und "keine Fortsetzung" an.

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

This is an example to block certain domains from hotlinking to your images. 
You could apply it to your case (the NC flags is important) : 

    RewriteCond %{HTTP_REFERER} !^http://(www\.)?leech_site\.com/ [NC] 
    RewriteRule \.(gif|jpg|png)$ - [F,L] 
1

Eine Sache, die Sie ist die PHP-Dateien irgendwo außerhalb des Document-Root lokalisieren tun könnte und eine AliasMatch Direktive verwenden. Wenn Ihre PHP-Dateien in /var/www-php/www.test.com sind versuchen

AliasMatch ^(.*)$ /var/www-php/www.test.com/$1.php 

Normalerweise, wenn Sie den Zugriff auf Dateien, außer unter bestimmten Bedingungen nicht zulassen wollen, so dass sie außerhalb des Document-Root bewegt, ist ein guter Weg, das zu tun.

Verwandte Themen