Ваш веб-сервер должен иметь возможность перенаправить ваш URL, чтобы он работал.
Допустим, вы находитесь на "http://site" и у вас есть ссылка, ведущая на" http://site/foo/bar".
Когда вы нажимаете на эту ссылку, вы на самом деле не переходите по этому URL-адресу, а просто "http://site/index.html#/foo/bar", angularjs обрабатывает все остальное.
Однако, если вы напрямую обращаетесь к "http://site/foo/bar",, ваш веб-сервер попытается найти путь" / foo / bar "на вашем сервере, который не существует, поэтому вы должны настроить свой сервер для перенаправления всего в "index.html".
Поскольку вы используете Apache, вы можете добавить его в свой .htaccess:
RewriteEngine On
# If an existing asset or directory is requested go to it as it is
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]
# If the requested resource doesn't exist, use index.html
RewriteRule ^ /index.html
Подробнее здесь .