Rajesh Dan
Rajesh Dan

Reputation: 467

How to rewrite url in apache htaccess for angularjs app

The htaccess I'm using is as follow

RewriteBase /
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} -U
RewriteRule ^.*$ - [NC]

RewriteCond %{REQUEST_URI} !-U
RewriteRule ^(.*)$ #/$1 [L]

On my localhost, when I'm simply typing localhost/ it's redirecting to localhost/home and my angular app is running perfectly. But when I'm directly typing the url localhost/home it's throwing 404. I need to rewrite it as localhost/#/home

In my angular app, in index.html header, I've added and $locationProvider.html5mode(true), html5 mode is working, but only problem is when refreshing browser...

Thank in advance everyone.

Upvotes: 2

Views: 3127

Answers (2)

Yuseferi
Yuseferi

Reputation: 8720

I handle this issue in my project with working on my VirtualHost

<VirtualHost *:8888>
    DocumentRoot "/Applications/MAMP/htdocs/angular"
    ServerName  zeyton.dev
    ServerAlias www.zeyton.dev
    DirectoryIndex index.html
  <Directory "/Applications/MAMP/htdocs/angular">
    order allow,deny
    allow from all
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^(.*) /index.html [NC,L]
  </Directory>
</VirtualHost>

Upvotes: 0

Michal Kucaj
Michal Kucaj

Reputation: 691

RewriteEngine   On
RewriteBase     /
RewriteCond     %{REQUEST_URI} !^(/index\.php|/img|/js|/css|/robots\.txt|/favicon\.ico)
RewriteCond     %{REQUEST_FILENAME} !-f
RewriteCond     %{REQUEST_FILENAME} !-d
RewriteRule     ./index.html [L]

Upvotes: 2

Related Questions