Next.JS — файл `.htaccess`?

Я только начинаю работу над своим первым приложением Next.JS. Я использовал npx create-next-app и сделал несколько страниц, когда понял, что не знаю, как использовать файл .htaccess. Я привык к тому, что Apache позаботится об этом за меня, и, что неудивительно, простое помещение моего файла .htaccess в корневой каталог моего приложения Next.JS не помогло. Как мне настроить файл .htaccess, подобный следующему?

RewriteEngine on

RewriteRule ^profile/([a-z0-9]+) profile.html

Вы бы этого не сделали. .htaccess — это файл конфигурации для Apache. Без Apache это бессмысленно.

Paul 23.02.2019 06:00

@Paulpro Тогда каков эквивалент React/Next.JS?

APixel Visuals 23.02.2019 06:01

@Paulpro Так вот что мне нужно! Большое спасибо, не стесняйтесь превратить это в ответ, я был бы рад принять его

APixel Visuals 23.02.2019 06:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
4
6 755
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

.htaccess файлы специфичны для Apache, поэтому без Apache вы не сможете их использовать. Вы можете использовать Apache в качестве прокси для вашего приложения node.js, но вы все равно не будете использовать файл .htaccess; вы можете настроить RewriteRules в своей конфигурации Apache, но в этом нет необходимости, когда вы можете обрабатывать всю свою маршрутизацию непосредственно в логике вашего приложения.

В node.js вам не нужен отдельный веб-сервер, такой как Apache. Ваша программа может работать долго, привязываться к порту, прослушивать и отвечать на запросы, что является основной функциональностью, которую обычно предоставляет веб-сервер.

Next.JS содержит документацию по настройке пользовательской маршрутизации здесь: https://nextjs.org/docs/#пользовательский-сервер-и-маршрутизация

Если ваш сервер уже использует Apache и на нем включен mod_rewrite, вы можете использовать это .htaccess:

<IfModule mod_rewrite.c>

  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteRule . /index.html [L]

</IfModule>

Источник

Вы должны научиться использовать pm2 :

  1. Вы должны иметь возможность установить nvm в Ubuntu, Centos и т. д. через ssl: от https://github.com/nvm-sh/nvm
  2. nvm даст вам возможность установить узел
  3. После завершения установки узла установите глобально pm2,
  4. https://pm2.keymetrics.io/
  5. В корневом каталоге проекта создайте файл: экосистема.config.js

экосистема.config.js:

module.exports = {
apps : [
    {
        name: "your_server_name",
        script: "./server.js",
        watch: true,
        env_development: {
            "PORT": 3000,
            "NODE_ENV": "development"
        },
        env_production: {
            "PORT": 8001,
            "NODE_ENV": "production",
        }
    }
]}

.htaccess выглядит так:

DirectoryIndex disabled
RewriteEngine On
RewriteRule ^$ http://127.0.0.1:8001/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:8001/$1 [P,L]

Войдите на свой сайт через SSH:

ssh name@IP then password

Как запустить pm2.

pm2 start ecosystem.config.js --env production

pm2 start ecosystem.config.js --env development

Какие файлы вам нужны на сервере:

files on server

Другие вопросы по теме