Angularjs和apache重写在子文件夹上不起作用

时间:2016-04-12 23:50:50

标签: angularjs apache .htaccess mod-rewrite

我正在尝试使用启用了AngularJs的{​​{1}},并且为了能够使用它我需要启用html5mode我需要rewrite指向文件夹。

当转到根.htaccess时,没有问题,一切正常。但是,当我尝试重定向到另一个部分的子文件夹时,我不断收到错误。例如,我有一个管理部分来发布新闻等。所以要访问应用程序的这一部分,我需要转到一个名为index的子文件夹,如/adm,这就是错误开始的地方

这是我的www.site.com/adm文件

.htaccess

这就是我得到的错误:

  

未捕获的SyntaxError:意外的标记<

当进一步观察时,我发现这是指向根上的索引。我知道它与<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L] </IfModule> 文件有关,但我不知道如何创建规则以确定它是否是根文件夹或子文件夹并创建正确的重写规则。

1 个答案:

答案 0 :(得分: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