2017-11-06 5 views
1

ich mit einem Controller aufgerufen Anbieter ein Setup von Codeigniter an der richtigen Stelle. Ich habe auch einen Ordner namens Lieferanten im Stammverzeichnis des Projekts.Codeigniter zeigt Dateistruktur auf localhost

Das Problem ist, wenn ich Aufruf www.example.com/vendors Codeigniter Routen in den Ordner namens Anbieter im Stammverzeichnis versuchen und zeigt die Dateistruktur im Browser.

Wie kann ich diese andere beheben, als entweder den Controller oder den Ordner umbenennen.

Sollte Codeigniter nicht für einen Controller suchen nur unter dem Controller-Ordner?

Zitat von OP Kommentar:

dies auf localhost passiert (Apache 2.4.27 und PHP 7.1.9), arbeitet auf dem Produktionsserver in Ordnung.

+0

Welche Web-Server verwenden Sie? Sie müssen den Verzeichniseintrag in der Webserverkonfiguration ändern. – jfadich

+0

benennen Sie Ihre Controller my_vendor .... sonst werden Sie einen Konstruktor in Ihrem Controller benötigen – Vickel

+0

@jfadich auf localhost geschieht, arbeitet auf dem Produktionsserver in Ordnung. –

Antwort

0

Nach .htaccess Überprüfung und ähnliche fand ich 2 Lösungen einen Ordner auf localhost, verstecken aber haben es mit Dateien (zum Beispiel Bilder) zugänglich über eine Web-Seite.

ersten ist auf Ihre Wurzel .htacess Datei hinzuzufügen:

Options -Indexes 

so würde es so aussehen:

# DON'T FORGET TO CHANGE $config['index_page'] = ''; 
RewriteCond $1 !^(index\.php|assets|photos|videos|vendors|robots\.txt|favicon\.ico) 
RewriteRule ^(.*)$ /index.php/$1 [L] 
Options -Indexes 

die zweite ist ein leeres Index hinzuzufügen. html-Datei in diesen (Vendors-) Ordner.

Die Dateistruktur ist jetzt versteckt!

edit: tatsächlich, sehen Sie, dass Codeigniter Ordner index.html Dateien haben, die wie folgt aussehen:

<html> 
<head> 
    <title>403 Forbidden</title> 
</head> 
<body> 

<p>Directory access is forbidden.</p> 

</body> 
</html> 
+0

Die erste Methode hat es geschafft, die Anzeige der Ordnerstruktur zu blockieren und zeigt eine verbotene Seite, aber ich möchte sie stattdessen zu meinem Controller, der Vendors genannt wird, routen, anstatt eine verbotene Seite anzuzeigen. –

+0

Ich kann Ihr Problem nicht reproduzieren, wenn ich Händler aus dem. Htaccess nehme und einen Controller Vendors.php in meinem Controller-Ordner habe, führt er seine Indexmethode aus. Stellen Sie sicher, dass Vendors.php in Großbuchstaben geschrieben ist. – Vickel

+0

Haben Sie dies auf dem lokalen Host oder dem Server versucht? Der Name des Controllers war seit dem Start Vendoren.Vielleicht haben Sie eine PHP-Konfiguration, die den direkten Zugriff auf die Dateistruktur verhindert? –

Verwandte Themen