Проблема с динамическими angular ссылками на хостинге
Сделала сайт на Angular https://pozitivtour74.ru/. На сайте может быть несколько поездок и при клике на кнопку "подробнее" переход по ссылке https://pozitivtour74.ru/:linkName, где будет подробная информация о поездках. Эти динамические ссылки сделала с помощью RouterModule, на локальной машине и при публикации на гид все работает.
Сейчас, если я перезагружаю страницу или сразу открываю https://pozitivtour74.ru/:linkName выходит ошибка "Not Found The requested URL was not found on this server."
Что это значит? мне нужно каким-то образом покупать поддомен для сайта для каждой поездки? Или может я как то неправильно задеплоила проект на хостинг?
Подскажите пожалуйста, первый раз выкладываю сайт на Хостинг.
Ответы (1 шт):
Нашла ответ здесь: https://angular-doc.ru/guide/deployment#fallback
Если коротко, то при адресе https://pozitivtour74.ru/:linkName сервер не отдает никакие файлы, это ошибочный поддомен и он выводит ошибку 404. Нужно сделать так, чтобы при ошибочном адресе возвращался исходный файл index.html, в котором уже скрипт angular с помощью RouterModule отрисует нужные компоненты для нужного адреса.
для этого нужно добавить в корневую папку файл .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