Je ne fais que commencer avec ma première application Next.JS. J'ai utilisé npx create-next-app
et j'ai fait quelques pages, quand j'ai réalisé que je ne savais pas comment utiliser un fichier .htaccess
. Je suis habitué à ce qu'Apache s'occupe de ce genre de choses pour moi, et mettre simplement mon fichier .htaccess
dans le répertoire racine de mon application Next.JS, sans surprise, n'a pas semblé le couper. Comment puis-je configurer un fichier .htaccess
similaire au suivant?
RewriteEngine on RewriteRule ^profile/([a-z0-9]+) profile.html
3 Réponses :
.htaccess
sont spécifiques à Apache, donc sans Apache vous ne pouvez pas les utiliser. Vous pouvez utiliser Apache comme proxy pour votre application node.js a >, mais vous n'utiliseriez toujours pas de fichier .htaccess
; vous pouvez configurer RewriteRules dans votre configuration Apache mais ce n'est pas nécessaire lorsque vous pouvez gérer tout votre routage directement dans la logique de votre application.
Dans node.js, vous n'avez pas besoin d'un serveur Web distinct comme Apache. Votre programme peut durer longtemps, se lier à un port, écouter et répondre aux requêtes, ce qui est la fonctionnalité principale qu’un serveur Web fournit normalement.
Next.JS a la documentation pour configurer le routage personnalisé ici: https: // nextjs.org/docs/#custom-server-and-routing
Si votre serveur utilise déjà Apache et qu'il a mod_rewrite
activé, vous pouvez utiliser ce .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>
Vous devez apprendre à utiliser pm2:
pm2 start ecosystem.config.js --env production pm2 start ecosystem.config.js --env development
ssh name@IP then password
Connexion sur votre site via SSH:
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]
Comment exécuter 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", } } ]}
De quels fichiers avez-vous besoin sur le serveur: p>
Vous ne feriez pas ça.
.htaccess
est un fichier de configuration pour Apache. Cela n'a aucun sens sans Apache.@Paulpro Alors quel est l'équivalent de React / Next.JS?
nextjs.org/docs/#custom-server-and-routing
@Paulpro Alors c'est ce dont j'ai besoin! Merci beaucoup, n'hésitez pas à en faire une réponse, je serais heureux de l'accepter