Предоставление 404 только для маршрута '/' (Nuxt JS) - развертывание виртуального хостинга

Я пытаюсь настроить приложение Nuxt, используя @ nuxt / pwa starter-template для рендеринга на стороне сервера на общем хостинге. Однако мое приложение Nuxt работает на "http://localhost:50000". Я пытаюсь показать запущенное приложение из "http://example.com" с помощью правила перезаписи в .htaccess.

При попытке доступа к "http://example.com" отображается 404. Без маршрута "Индекс (/)" любой другой маршрут в порядке. Даже переход к маршруту "Индекс (/)" с любого другого маршрута тоже нормально. Показывает только 404 при попытке загрузить маршрут "/" напрямую.

Например:

http://example.com Не работает

http://example.com/contact Прекрасно работает

*** На Github уже есть такая же проблема: https://github.com/nuxt/nuxt.js/issues/2625 Но я не нашел оттуда ничего полезного.

Вот файл .htaccess, который я использую. -

Options +FollowSymLinks 
<IfModule mod_rewrite.c>

RewriteEngine on

RewriteRule ^(.*) http://127.0.0.1:50000/$1 [P,L]

</IfModule>

Может кто-нибудь помочь мне с этим вопросом ??? Заранее спасибо!


person Jonson    schedule 08.12.2018    source источник
comment
Я решил проблему. Я также создал стартовый шаблон, используя nuxt-community / pwa-template, и описал там, как его использовать. Репозиторий Github: nuxt-template-for-shared-hosting   -  person Jonson    schedule 11.12.2018
comment
У меня точно такая же проблема. как ты это починил? потому что мой проект почти закончен, и я хочу забрать исправление только, а не ваш шаблон,   -  person milan    schedule 05.04.2019


Ответы (3)


Кажется, это немного поздно для этого ответа, но я нашел его только в github и хотел бы помочь всем, кто найдет эту тему с той же проблемой.

Этот htaccess у меня работает, он нормально загружает страницу index.vue, когда я обновляюсь, и навигация работает.

Замените my-domain своим доменом.

RewriteEngine on

# Forcing all incoming requests to HTTPS. 
# HTTPS is required for PWA. If you don't want PWA feature you can deisable next 2 lines

RewriteCond %{HTTP_HOST} ^my-domain.com.br$
RewriteRule "(.*.(jpg|gif|png|svg|js|css|woff2))$" "http://127.0.0.1:3000/$1" [P,NC]
RewriteRule ^(.*) "http://127.0.0.1:3000/$2" [P,L]
person viniciussvl    schedule 26.06.2019

Используйте мой код .htaccess:

RewriteRule ^index.html.var$ http://127.0.0.1:3000/ [P]
RewriteRule ^(.*) http://127.0.0.1:3000/$1 [P]

Эта проблема меня тоже давно беспокоит. Я добавил _index.vue динамический vue-router и,

validate ({params}) {
  console.log (params.index);
}

Терминал выводит index.html.var. Итак, я подумал, что когда мы посетили домашнюю страницу, Apache отправил прокси, но URL-адрес запроса, полученный nuxt.js, был не «/», а «index.html.var».

person Sixin Zhou    schedule 24.04.2020
comment
Привет, пожалуйста, подумайте об использовании тегов, чтобы улучшить влияние вашего сообщения и увеличить возможность получить правильный ответ. - person Py-ser; 24.04.2020

RewriteEngine на

Принуждение всех входящих запросов к HTTPS.

HTTPS требуется для PWA. Если вам не нужна функция PWA, вы можете отключить следующие 2 строки

RewriteCond% {HTTP_HOST} ^ my-domain.com.br $ RewriteRule "(. . (Jpg | gif | png | svg | js | css | woff2)) $" "http://127.0.0.1:3000/ $ 1" [P, NC] RewriteRule ^ (.) "http://127.0.0.1:3000/ $ 2" [P, L]

Работай на меня.

person Ryan Thanh Tien    schedule 28.03.2020