2016-04-12 10 views
0

Ich versuche AngularJs mit html5mode aktiviert zu verwenden, und in der Lage sein, es zu benutzen ich ein rewrite ich brauche ein .htaccess aktivieren müssen, um den Ordner zu zeigen.AngularJS und Apache Rewrite funktionieren nicht auf Unterordner

Wenn Sie zum Stamm index gehen, gibt es kein Problem, alles funktioniert gut. Aber wenn ich versuche, in einen Unterordner umzuleiten, wo es einen anderen Bereich gibt, bekomme ich immer Fehler. Zum Beispiel habe ich einen Admin-Bereich, um Nachrichten zu veröffentlichen, etc .. Um auf diesen Teil der App zugreifen zu können, muss ich in einen Unterordner namens /adm wie dieser gehen www.site.com/adm und das ist, wo die Fehler beginnt.

Das ist meine .htaccess Datei

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^index.html$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.html [L] 
</IfModule> 

Und das ist der Fehler Ich erhalte:

Uncaught SyntaxError: Unexpected token <

Wenn weiter suchen, ich sehe dieser Punkt auf den Index an der Wurzel ist. Ich weiß, dass es etwas mit der Datei .htaccess zu tun hat, aber ich kann nicht eine Regel erstellen, um zu identifizieren, ob es ein Stammordner oder ein Unterordner ist und die richtige Rewrite-Regel erstellen.

+0

haben Sie eine Basis href auf Ihre HTML-Datei hinzufügen? https://docs.angularjs.org/guide/$location#relative-links – Ronnie

+0

@Ronnie Ja. die Basis ist '/ adm' auch probiert'/adm/' – celsomtrindade

+0

Was soll in'/adm' passieren? Sollte das Umschreiben in diesem Ordner funktionieren? Wenn ja, was ist das erwartete Ergebnis? Ja, jetzt wird alles, was keine Datei oder Ordner ist, in index.html in root – poncha

Antwort

1

Try this:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^(adm/)?index.html$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(adm/)?. /$1index.html [L] 
</IfModule> 

Was ist neu zu schreiben ist alles in /adm/-/adm/index.html und alles andere zu /index.html