Lab

Cómo instalar ghost en un subdirectorio

Muchas veces nuestro sitio web va más allá de un simple blog personal como lo es este sitio web, a un sitio más empresarial que en sus diferentes subdirectorios puede llegar a albergar varios sistemas como por ejemplo tusitio.com/blog y tener instalando en este subdirectorio solo el sistema ghost y en el subdirectorio tusitio.com/foro tener instalado el sistema discourse y así sucesivamente pero muchas veces queremos el directorio principal hecho una landing page, para que todo se vea más profesional.

Así que hoy te voy a enseñar dos trucos importantes que lo vas a agradecer.

¿Cómo mover ghost a un subdirectorio de un sitio web con nginx?

Esto es lo más sencillo del mundo solo nos vamos directo al core de ghost y en el archivo index.js lo modificamos de la siguiente manera.

 production: {
 url: 'http://www.tusitioweb.com/blog/',
 mail: {},
 database: {
 client: 'sqlite3',
 connection: {
 filename: path.join(__dirname, '/content/data/ghost.db')
 },
 debug: false
 },

 server: {
 host: '127.0.0.1',
 port: '2368'
 }
 },

Luego de hacer eso nos vamos a la siguiente ubicación escribiendo esto en nuestra terminal.

`cd /etc/nginx/sites-enabled/`

Una vez estando allí tenemos que modificar el archivo ghost lo podemos hacer con nano

 server {
 listen 80;
 server_name localhost;

 location ^~ /blog {
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Host $http_host;
 proxy_set_header X-NginX-Proxy true;

 proxy_pass http://127.0.0.1:2368;
 proxy_redirect off;
 }}

Hecho esto tu tienes que reiniciar tu servidor escribiendo esto:

`sudo service nginx restart`

todo bien pero ahora te voy a enseñar otro truquito que te puede ayudar en mejorar la visibilidad de tu sitio web en los buscadores.

¿Cómo redirigir un sitio web sin www a www y viceversa?

Esto es muy sencillo de hacer en el mismo archivo en el que estabas y configuraste lo que acabas de hacer lo tienes que modificar y hacer agregar esto:

 server {
 listen 80;
 server_name tusitio.com 159.203.232.146;
 return 301 return 301 $scheme://www.tusitio.com$request_uri;
 location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
 expires 365d;
 }

 location ~* \.(pdf)$ {
 expires 30d;
 }
 }

ese modificación la tienes que agregar arriba en el mismo archivo que modificaste, donde dice tusitio.com lo cambias por tu sitio y donde está 159.203.232.146 lo cambias por la ip de tu droplet o servidor, haciendo que cuando los buscadores te indexen, no indexen tu sitio web dos veces y dupliquen el contenido y pierdas puntos en los resultados de búsqueda.

¿Cómo se cambia a en apache?

tienes que entrar en esta ubicación:

`/etc/httpd/conf/httpd.conf`

estando ahí tienes que agregar el siguiente código

 <IfModule mod_proxy.c>
 ProxyPreserveHost On
 ProxyPass /blog/ http://127.0.0.1:2368/blog/
 ProxyPassReverse /blog/ http://127.0.0.1:2368/blog/
</IfModule>

De esta forma tu ya tienes el subdirectorio /blog/ con tu sistema listo y ya

para hacer la re dirección de sin www a con www en apache tienes que modificar el archivo .htaccess escribiendo el siguiente código:

 RewriteEngine On
 RewriteCond %{HTTP_HOST} ^midominio.com [NC]
 RewriteRule ^(.*)$ http://www.midominio.com/$1 [L,R=301]

Si tienes dudas puedes aprender más sobre re direccionamientos 301 en nginx y en apache por aquello de las dudas y que quieras agregar tu sitio con certificado ssl cifrado de seguridad que la configuración es muy parecida a esta