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