it-swarm.com.de

.htaccess-Umleitung vom Site-Stamm zu einem öffentlichen Ordner, "public" in der URL versteckt?

Bellow ist meine Verzeichnisstruktur: 

htdocs/
    My-Project/
        public/
            index.php
            css/
            img/
            js/
        src/
            config.php
            templates/
            library/

Ich möchte keinen direkten Benutzerzugriff auf Dateien im Verzeichnis src. src enthält meine Schablonen- und Backend-Logik-Skripts.

Ich möchte meinen .htaccess so einrichten, dass der Benutzer zu meiner Website (Stammordner My-Project) wechselt, um ihn zu My-Project/public/index.php umzuleiten. Ich möchte, dass die URL einfach auf der Indexseite wie My-Project.com aussieht.

Irgendeine Hilfe? Ich zögere, meine .htaccess-Datei zu ändern, da ich hier und im Internet viele widersprüchliche Ratschläge bezüglich der besten Vorgehensweise sehe.

15
Prefix

Diesen Code in /My-Project/.htaccess einfügen:

RewriteEngine On
RewriteBase /My-Project/

RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
RewriteRule ^ %1 [L,NE,R=302]

RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
32
anubhava

Fügen Sie der ersten Zeile Ihres .htaccess Folgendes hinzu

DirectoryIndex public/index.php public/index.html
8
daxeh

Ich habe einige Änderungen an @ anubhavas Reaktion auf die Arbeit mit localhost und mit freundlichen URLs vorgenommen.

Verzeichnisaufbau:

  • / (localhost-Stammordner)
    • meine App/
      • Öffentlichkeit/
      • index.php
    • ader/
      • einige Kerndateien ...

myapp/.htaccess (myapp-Stammordner)

RewriteEngine On
RewriteBase /myapp

RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
RewriteRule ^ %1 [L,NE,R=302]
RewriteRule ^(.*)$ public/index.php?$1 [L,QSA]

myapp/public/.htaccess

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]

myapp/public/index.php

<?php
echo 'Hello<br>';
echo $_SERVER['QUERY_STRING'];

Einige Anfragen:

http: // localhost/myapp/

Hallo


http: // localhost/myapp/post/new

Hallo 

post/neu

1
SandroMarques