2016-04-12 29 views
0

我想使用AngularJshtml5mode啓用,並能夠使用它,我需要啓用rewrite我需要一個.htaccess指向該文件夾。Angularjs和Apache重寫不起作用子文件夾

當去根index,沒有問題,一切工作正常。但是當我嘗試重定向到有另一節的子文件夾時,我不斷收到錯誤。例如,我有一個管理部分發布新聞等。所以要訪問這部分的應用程序,我需要去這個子文件夾/adm這樣www.site.com/adm這就是錯誤開始的地方。

這是我.htaccess文件

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

這是我收到的錯誤:

Uncaught SyntaxError: Unexpected token <

如果再繼續看,我認爲這是指向根索引。我知道它與.htaccess文件有關,但我不知道如何創建一個規則來確定它是否是根文件夾或子文件夾,並創建適當的重寫規則。

+0

你基本href添加到您的HTML文件? https://docs.angularjs.org/guide/$location#relative-links – Ronnie

+0

@羅尼是的。 '/ adm'也試過了'/ adm /' – celsomtrindade

+0

'/ adm'應該發生什麼?重寫應該在該文件夾內工作嗎?如果是這樣,預期的結果是什麼?是的,現在所有不存在的文件或文件夾都會被重寫到根目錄中的index.html中 – poncha

回答

1

試試這個:

<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> 

這樣做是重寫內部/adm/一切/adm/index.html和其他一切/index.html