Apache rewrite rules not being applied for angularjs Apache rewrite rules not being applied for angularjs apache apache

Apache rewrite rules not being applied for angularjs


This is now much easier in Apache 2.2.16+ using the FallbackResource directive.

FallbackResource /app/index.html

http://httpd.apache.org/docs/2.2/mod/mod_dir.html#fallbackresource

Depending on how you're forwarding access to your API you may need to also leverage the enclosure to disable the fallback resource on specifically on API requests (2.2.24+).

<Directory /api>    FallbackResource disabled</Directory> 


This works for me:

<ifModule mod_rewrite.c>    RewriteEngine On    RewriteCond %{REQUEST_FILENAME} !-f    RewriteCond %{REQUEST_FILENAME} !-d    RewriteCond %{REQUEST_URI} !index    RewriteRule (.*) index.html [L]</ifModule>


I had this same issue. But I'm ignorant in mod_rewrite so had to Google a lot.I found the solution in this email:

https://groups.google.com/d/msg/angular/GmNiNVyvonk/mmffPbIcnRoJ

So I think your .htaccess should look as follows:

Options +FollowSymLinksIndexIgnore */*RewriteEngine on# if a directory or a file exists, use it directlyRewriteCond %{REQUEST_FILENAME} -s [OR]RewriteCond %{REQUEST_FILENAME} -l [OR]RewriteCond %{REQUEST_FILENAME} -dRewriteCond %{REQUEST_URI} !/apiRewriteRule ^.*$ - [NC,L]# otherwise forward it to index.html RewriteRule ^app/(.*) /app/#/$1 [NC,L]

Notice the (.*) and the #/$1

Note: you MUST use absolute paths in your includes CSS, JS, etc. if not you are going to get the error:

resource interpreted as script but transferred with mime type text/html