Tengo que subir un proyecto a un servidor «raro» que no me
permite tocar nada de la configuración, por lo que no puedo especificar que tire
de la carpeta public. Es algo más inseguro pero la única opción que he visto es
hacer que tire de la raíz del proyecto. Para ello he seguido los siguientes pasos:
Renombrar /server.php como index.php y cambiar el código
require_once __DIR__ . '/public/index.php';
por
require_once __DIR__ . '/public/server.php';
Crear un fichero .htaccess en el raíz con el código:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -Indexes
</IfModule>
<FilesMatch "\.(json|xml|lock|env|example|gitattributes|gitignore)$">
Order allow,deny
Deny from all
</FilesMatch>
<Files artisan>
Order allow,deny
Deny from all
</Files>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
Borrar el fichero /public/.htaccess
Renombrar el fichero /public/index.php por /public/server.php
Logicamente hay que evitar subir los fichero composer, webpack, etc y cuando queramos hacer referencia a un asset la nueva ruta será con public, por ejemplo «{{ asset(‘public/js/app.js’) }}»
0 Comentarios.