2016-10-06 3 views
1

So umleiten, dann ist hier, was meine Ordnerstruktur ist wie:Wie alle Anfragen mit .htaccess

/ 
    /public/ 
    /index.php 
    /app/ 
.htaccess 

Ich möchte, dass, wenn ich www.example.com die Anforderung an die public\index.php Datei gehen geben aber nicht angezeigt, die public. Und wenn ich gehe zu www.example.com\app geht es zu \public\app aber zeigt nur www.example.com\app.

Ist das mit .htaccess möglich?

Antwort

2

In Ihrer Website root .htaccess Sie diese verwenden können:

DirectoryIndex index.php 
RewriteEngine On 

# add trailing slash in front of directories 
RewriteCond %{DOCUMENT_ROOT}/public/$1 -d 
RewriteRule ^(.*?[^/])$ %{REQUEST_URI}/ [L,R=301,NE] 

# internally forward to /public/... 
RewriteRule !^public/ public%{REQUEST_URI} [L,NC] 
+0

Aber mit diesem, wenn ich gehe zu 'www.example.com/app' es funktioniert, zeigt aber "www.example.com/public/app" in der Adressleiste. Wie kann ich die "Öffentlichkeit" verstecken? – MrMadBacon

+0

Probieren Sie meine aktualisierten Regeln aus, nachdem Sie Ihren Browser-Cache vollständig gelöscht haben. – anubhava

+1

Danke! Es wirkt wie ein Zauber! – MrMadBacon

0

Dies sollte funktionieren:

RewriteRule ^$ /public/index.php [L] 

RewriteCond %{REQUEST_URI} !^/public [NC] 
RewriteRule ^(.*)$ public/$1 [L] 
Verwandte Themen