Я только начинаю работу над своим первым приложением Next.JS. Я использовал npx create-next-app и сделал несколько страниц, когда понял, что не знаю, как использовать файл .htaccess. Я привык к тому, что Apache позаботится об этом за меня, и, что неудивительно, простое помещение моего файла .htaccess в корневой каталог моего приложения Next.JS не помогло. Как мне настроить файл .htaccess, подобный следующему?
RewriteEngine on
RewriteRule ^profile/([a-z0-9]+) profile.html
@Paulpro Тогда каков эквивалент React/Next.JS?
@Paulpro Так вот что мне нужно! Большое спасибо, не стесняйтесь превратить это в ответ, я был бы рад принять его





.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 :
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",
}
}
]}
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
Какие файлы вам нужны на сервере:
Вы бы этого не сделали.
.htaccess— это файл конфигурации для Apache. Без Apache это бессмысленно.