2015-01-16 2 views
1

При загрузке страницы с помощью Angular a Apache myserver.com все работает нормально, перейдя в подпрограмму с главной страницы myserver.com/credits, щелкнув ссылку, она будет работать.AngularJS, отправляющийся на маршрут, дает 404 в Apache

Однако, если я пытаюсь перейти непосредственно к myserver.com/credits из браузера панели навигации он будет возвращать 404 error сообщений:

Error Message

Я знаю, что, работая с узлом я могу настроить это так что он работает, однако, мой сайт компании работает на сервере Apache, к которому у меня нет доступа.

Я мог бы сделать это так, сервер перенаправляет на главную страницу myserver.com так:

.htaccess

ErrorDocument 404 /index.html 

Однако оптимальное разрешение будет то, что будет myserver.com/credits работ откровенными.

Есть ли способ заставить Apache вести себя таким образом? И если да, то как?

+1

При использовании angularjs в режиме html5, вам нужно HTAccess, что переписывает запросы к папкам, которые не существуют на ваш index.html так что угловой маршрут может это. http://stackoverflow.com/questions/22739455/htaccess-redirect-for-angular-routes –

+0

Как мне это сделать? Достаточно просто указать мне ссылку. В противном случае, если вы покроете его в качестве ответа, я соглашусь с ним. – Erick

+0

Спасибо, пометили этот вопрос как дубликат. https://stackoverflow.com/questions/22739455/htaccess-redirect-for-angular-routes работает отлично. – Erick

ответ

1

Ответа, который решает этот вопрос можно найти здесь:

https://stackoverflow.com/a/22740184/1224232

Я пометил этот вопрос как дубликат. Я тестировал его, и он отлично работает.

Особая благодарность Kevin B за то, что она направила меня на ответ, и до Rajasaur за предоставление ответа.

2

Создал файл .htaccess в корневом каталоге, если он не существует. затем добавьте в него следующий код

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# not rewrite css, js and images 
RewriteCond %{REQUEST_URI} !\.(?:css|js|map|jpe?g|gif|png)$ [NC] 
RewriteRule ^(.*)$ /index.html?path=$1 [NC,L,QSA] 
Смежные вопросы