Remover la carpeta public o index.php de la URL en Laravel
Muchas veces cuando estamos desarrollando un proyecto en Laravel y lo pasamos a producción, vemos errores que aparece en la URL, la carpeta public o el archivo index.php; veamos como removerlas.
Muchas veces cuando estamos desarrollando un proyecto en Laravel y lo pasamos a producción, vemos errores que aparece en la URL, la carpeta public o el archivo index.php:
Lo cual, si tenemos un blog, esto nos puede traer penalizaciones con el SEO; en esta entrada vamos a ver como reparar este problema, no desde el htacces que muchas veces no funciona y que hay muchos ejemplos de como hacerlo en Internet, si no, mediante código PHP, por lo tanto, si estas desesperado, esta es la última medida que puedes implementar.
Para remover la carpeta public y/o index.php de la URL, lo que debemos de hacer es ir al proveedor de nuestra aplicación:
app/Providers/AppServiceProvider.php
Que es una especie de middleware, y creamos una función como la siguiente:
app/Providers/AppServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Str;
class AppServiceProvider extends ServiceProvider
{
public function boot(): void
{
$this->removePublicPHPFromURL();
}
protected function removePublicPHPFromURL()
{
if (Str::contains(request()->getRequestUri(), '/public/')) {
$url = str_replace('public/', '', request()->getRequestUri());
if (strlen($url) > 0) {
header("Location: $url", true, 301);
exit;
}
}
}
}
O si quieres para remover el index.php, queda como:
protected function removeIndexPHPFromURL()
{
if (Str::contains(request()->getRequestUri(), '/index.php/')) {
$url = str_replace('index.php/', '', request()->getRequestUri());
if (strlen($url) > 0) {
header("Location: $url", true, 301);
exit;
}
}
}
En ambos casos, como puedes ver, simplemente verificamos mediante el request, si existe la carpeta de index.php o la carpeta public y la removemos, luego, hacemos una redirección de tipo 301 que significa que indica que es una redirección permanente a la misma URL quitando la carpeta public e index.php.
🔴
Muchas veces cuando estamos desarrollando un proyecto en Laravel y lo pasamos a producción, vemos errores que aparece en la URL, la carpeta public o el archivo index.php; veamos como removerlas.