2017-05-24 5 views
0

So habe ich die folgende Ordnerstruktur:.htaccess Ordner Rewrite Ausgabe

-public_html/ 
    - .htaccess 
    - web/ 
     - index.php 
     - rt/ 
      -index.php 

Die .htaccess enthält folgende Komponenten:

RewriteEngine On 

RewriteRule ^rt/(.*)$ web/rt/$1 [NC,QSA,L] 
RewriteRule ^(.*)$ web/$1 [NC,QSA,L] 

Die Idee ist, dass alle URLs 'rt' beginnen, werden gerichtet "web/rt" (wie/rt/und/rt/secure /) und alles andere geht auf "web". Aus irgendeinem Grund funktioniert die 'rt'-Weiterleitung nicht und alles wird' web '. Jede Hilfe wird sehr geschätzt.


Beispiele:

/     > web/index.php 
/my_page/   > web/index.php 
/rt/    > web/rt/index.php 
/rt/another_page/ > web/rt/index.php 
+0

Danke Justin, aber das Hinzufügen von 'RewriteBase /' hat funktioniert. – Paul

Antwort

0

Problem ist, dass der 2. Regel alles selbst das Ziel der ersten Regel wird neu zu schreiben.

können Sie haben:

RewriteEngine On 

RewriteRule ^rt/(.*)$ web/rt/$1 [NC,L] 

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

Jetzt 2. Regel jede URI überspringen wird, die mit /web/ beginnt.

+0

Vielen Dank für diese Antwort, aber es hat nicht für dieses Problem funktioniert. – Paul

+0

Löschen Sie den Cache Ihres Browsers und sagen Sie, welche URL nicht funktioniert und was der Fehler ist. – anubhava

+0

Cache gelöscht, es funktionieren keine URLs, die/rt/starten. Der Fehler ist ein 404, der seinen Inhalt aus dem Ordner "web" und nicht aus dem Ordner "rt" rendert. – Paul