How to rewrite url in apache htaccess for angularj

2020-04-17 02:19发布

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.

2条回答
小情绪 Triste *
2楼-- · 2020-04-17 03:00
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]
查看更多
仙女界的扛把子
3楼-- · 2020-04-17 03:10

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>
查看更多
登录 后发表回答