2017-06-13 1 views
0

Meine .htaccess-Datei:.htaccess verweigert den Zugriff auf index.php als Verzeichnisindex

DirectoryIndex index.php 

order allow,deny 
<FilesMatch "^(index|testfile)\.php$"> 
Allow From All 
</FilesMatch> 

Verweigert den Zugriff auf die Root-Sites, die typischerweise offen index.php. Die einzige Möglichkeit, die Website zu laden, ist mysite.com/index.php anstelle von mysite.com zu gehen. Wenn ich die order entferne, funktioniert es wie erwartet, aber jetzt sind alle Dateien in diesem Verzeichnis zugänglich.

Wie konfiguriere ich die .htaccess alle Dateien außer index.php zu verweigern, sondern auch für die Navigation zu mysite.com statt mysite.com/index.php erlauben?

+0

Können die downvoters erklären, warum? –

Antwort

1

Sie können es wie folgt tun:

DirectoryIndex index.php 
order Deny,Allow 

# deny everything except landing page 
<FilesMatch "."> 
Deny From All 
</FilesMatch> 

# allow index.php and testfile.php 
<FilesMatch "^(index|testfile)\.php$"> 
Allow From All 
</FilesMatch> 

Alternative Lösungmod_rewrite mit:

DirectoryIndex index.php 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !\.(?:css|js|png|jpe?g|gif|ico|tiff)$ [NC] 
RewriteRule ^(?!(index|testfile)\.php). - [F,NC] 
+0

Danke für die Hilfe, es sieht so aus, als ob es immer noch Zugriff verweigert, es sei denn, ich füge ein abschließendes '/' zur URL hinzu, irgendwie herum? –

+0

Wenn ich auf meinem Apache getestet habe, erlaubt es 'http: // localhost',' http: // localhost/index.php' und 'http: // localhost/testfile.php' – anubhava

+0

Sie können auch meine alternative Lösung versuchen – anubhava

Verwandte Themen