txtgenerator txt robots make example crear node.js express robots.txt

node.js - make - robots txt example



¿Cuál es la forma más inteligente de manejar robots.txt en Express? (4)

Actualmente estoy trabajando en una aplicación creada con Express (Node.js) y quiero saber cuál es la forma más inteligente de manejar diferentes robots.txt para diferentes entornos (desarrollo, producción).

Esto es lo que tengo ahora pero la solución no me convence, creo que está sucio:

app.get ''/robots.txt'', (req, res) -> res.set ''Content-Type'', ''text/plain'' if app.settings.env == ''production'' res.send ''User-agent: */nDisallow: /signin/nDisallow: /signup/nDisallow: /signout/nSitemap: /sitemap.xml'' else res.send ''User-agent: */nDisallow: /''

(NB: es CoffeeScript)

Debería haber una mejor manera. ¿Como lo harias?

Gracias.


  1. Crea robots.txt con el siguiente contenido:

    User-agent: * Disallow:

  2. agréguelo a public/ directory.

su robots.txt estará disponible para rastreador en http://yoursite.com/robots.txt


Para elegir el archivo robots.txt dependiendo del entorno con una forma de middleware:

var env = process.env.NODE_ENV || ''development''; if (env === ''development'' || env === ''qa'') { app.use(function (req, res, next) { if (''/robots.txt'' === req.url) { res.type(''text/plain''); res.send(''User-agent: */nDisallow: /''); } else { next(); } }); }


Parece una buena forma.

Una alternativa, si desea poder editar robots.txt como archivo normal, y posiblemente tener otros archivos que solo desea en modo de producción o desarrollo, sería usar dos directorios separados y activar uno u otro al inicio.

if (app.settings.env === ''production'') { app.use(express[''static''](__dirname + ''/production'')); } else { app.use(express[''static''](__dirname + ''/development'')); }

luego agrega 2 directorios con cada versión de robots.txt.

PROJECT DIR development robots.txt <-- dev version production robots.txt <-- more permissive prod version

Y puede seguir agregando más archivos en cualquier directorio y mantener su código más simple.

(lo siento, esto es javascript, no coffeescript)


Use una función de middleware. De esta forma, el robots.txt se manejará antes de cualquier sesión, cookieParser, etc.

app.use(''/robots.txt'', function (req, res, next) { res.type(''text/plain'') res.send("User-agent: */nDisallow: /"); });

Con express 4 app.get ahora se maneja en el orden en que aparece, así que puedes usar eso:

app.get(''/robots.txt'', function (req, res) { res.type(''text/plain''); res.send("User-agent: */nDisallow: /"); });