Pregunta:
Fecha: 14-01-2016 08:04:31
(En Español)
y para ejecutar hago esto
pero yo quisiera que sea de esta manera
saludos Votos: 2 - Respuestas: 9 - Vistas: 23 Compartir en: Google Facebook Twitter LinkedIn Link
¿Cómo quitar el public en Laravel?[No resuelta]
Estoy iniciando en laravel, y no se como puedo quitar el public, he creado un router
Route::get('/prueba', function () {
echo "eso";
});
y para ejecutar hago esto
http://localhost/blog/public/prueba
pero yo quisiera que sea de esta manera
http://localhost/blog/prueba
saludos Votos: 2 - Respuestas: 9 - Vistas: 23 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 14-01-2016 08:55:55 Caro Juan,
tive este problema recentemente e a solução que encontrei é a que adotei e achei bastante prática. Tanto que estou utilizando a mesma em www.pixelcoletivo.com.br
O que fiz foi gerar 1 pasta chamada Local e migrei para ela todo o conteúdo que fica fora de "/public"
E o conteúdo de "/public" migrei para raiz... porém não deletei a pasta "/public", utilizo-a para armazenar componentes do "twitter bootstrap", "jquery" entre outros....
após esta mudança, fiz as alterações nas configurações no "index.php" que agora fica na raiz e o caminho incluso agora em "/local/bootstrap/app.php", corrigindo as rotas.
Espero ter ajudado! Votos: 2 - Link respuesta -
Fecha: 14-01-2016 09:00:55 Hola
si usas apache puedes crear un archivo .htaccess y poner este codigo adentro
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ public/$1 [L] </IfModule>
Puedes ver mas respuestas a tu pregunta en el grupo de Laravel Colombia
https://www.facebook.com/groups/laravelco/ Votos: 2 - Link respuesta -
Fecha: 14-01-2016 10:11:06 gracias a ambos por responder, acabo de agregar el htaccess
y ahora me sale esto errror
Sorry, the page you are looking for could not be found. 1/1 NotFoundHttpException in RouteCollection.php line 161: in RouteCollection.php line 161 at RouteCollection->match(object(Request)) in Router.php line 802 at Router->findRoute(object(Request)) in Router.php line 670 at Router->dispatchToRoute(object(Request)) in Router.php line 654 at Router->dispatch(object(Request)) in Kernel.php line 246 at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52 at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44 at CheckForMaintenanceMode->handle(object(Request), object(Closure)) at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 at Pipeline->Illuminate\Routing\{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 at Pipeline->then(object(Closure)) in Kernel.php line 132 at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99 at Kernel->handle(object(Request)) in index.php line 54
ojala me puedan ayudar Votos: 2 - Link respuesta -
Fecha: 14-01-2016 14:19:25 Juan,
Ao meu ver, você esta tentando linkar a uma página que não existe. Verifique se as páginas criadas estão dentro da pasta designada para as mesmas, onde o router vai buscar. Elas ficam dentro de Resources > Views.... Votos: 4 - Link respuesta -
Fecha: 18-01-2016 14:30:20 Haber...
Primero public debe existir, y la ruta del documentRoot debe estar apuntando a este directorio si no, la aplicación no va a funcionar, lo que debes hacer es crear un dominio virtual que apunte a la ruta de public, obvio con un nombre de dominio..
Es realmente facil en Linux... Votos: 2 - Link respuesta -
Fecha: 19-01-2016 23:43:13 Como faustino (acima) respondeu:
Você tem que configurar o linux para remover a pasta public da URL.
Nada de remover itens da pasta public ou então, mexer no htaccess.
Existe um tutorial ótimo sobre o assunto, vou enviar aqui assim que o encontrar.
Não sei se é exatamente nesse vídeo, a série tem 5 vídeos. Preste atenção no passo a passo, acredito que voce vai conseguir.
(Faça isso numa nova instalação do laravel, e depois mova seus arquivos (menos o htaccess modificado, etc)
Criar Virtual Host Para Desenvolvimento Web
Votos: 2 - Link respuesta -
Fecha: 20-01-2016 09:44:48 REMOVER SEGMENTO ‘/PUBLIC’ DE LA URL EN LARAVEL
Cuando se empieza con un proyecto en Laravel por defecto el segmento ‘public’ de la URL es visible. A nivel de desarrollo puede que no moleste mucho – en mi caso sí me molesta -, pero cuando ya queremos montar nuestra aplicación y lanzarla al mundo obviamente no queremos ‘public’ esté ahí.
En primera instancia tenemos que entender que contiene el directorio ‘public‘ de Laravel. Como bien dice su nombre, contiene todo lo público de la aplicación – al que el navegador tendrá acceso -: hojas de estilo, javascript, imágenes, fuentes, favicon. En resumidas cuentas son los conocidos assets. Pero dentro de este directorio también deben ir los archivos: robots.txt, humans.txt, mapas del sitio y archivos públicos de descarga. Finalmente se encuentra el archivo index.php el que se encarga de arrancar el framwork.
A continuación voy a explicar dos formas de poder ocultar el segmento ‘/public’ de la URL. Pueden ser utilizadas tanto a nivel local como en producción.
CREANDO UN LINK SIMBÓLICO
Esta es la opción más recomendada debido a que es la más simple, sin tener que tocar código alguno. Al mismo tiempo, entrega seguridad – y es la que la comunidad recomienda – debido a que oculta del acceso público los archivos propios del framwork y sólo deja la carpeta ‘public’ como accesible.
Lo que vamos a hacer es tener nuestra carpeta de Laravel fuera de alcance público y vamos a crear un link a la carpeta pública /public. Por ejemplo, vamos a tener el framework en /algun/lugar/del/disco/laravel y vamos a crear un link simbólico para que al momento de acceder desde el navegador, el servidor obtenga los datos desde /algun/lugar/del/disco/laravel/public.
Descarguen e instalen Laravel fuera del directorio web público – fuera de public_html, www o htdocs -. Puede ser en cualquier lugar, pero yo recomiendo utilizar un nivel más arriba del directorio web público.
El siguiente paso es crear el link simbólico.
Windows Vamos a suponer que trabajan con XAMPP y que tienen instalado Laravel en C:\xampp\framework-laravel. Abran una consola como Administrador – importante -. Vayan al directorio web público: 1 cd C:\xampp\htdocs Luego escriban el siguiente comando: 1 mklink /d laravel C:\xampp\framework-laravel\public Linux Vamos a suponer que trabajan con LAMPP y que tienen instalado Laravel en /opt/lampp/framework-laravel. En la consola deben escribir: 1 ln -s /opt/lampp/framework-laravel/public /opt/lampp/htdocs/laravel
Ahora ya podemos acceder a http://localhost/laravel. Ahora esa ruta hace referencia a la carpeta ‘public’ de Laravel. El nombre que le dimos al link es laravel – justo despues de /d en Windows y la última ruta en Linux – pero pueden ocupar el que ustedes deseen, como el nombre del proyecto en el cual trabajan.Para remover el link sólo deben remover el archivo creado que se encuentra en la carpeta web pública.
OCULTANDO EL FRAMEWORK Y DEJANDO /PUBLIC SEPARADO
Al igual que la opción anterior, también ocultaremos el framework del acceso publico, pero dejaremos la carpeta ‘public‘ en la carpeta web pública – public_html, www o htdocs – y lo ‘feo’ de todo esto, es que hay que meter un poco de mano al código, veamos:
Descarguen e instalen Laravel fuera del directorio web público – fuera de public_html, www o htdocs -. Puede ser en cualquier lugar, pero yo recomiendo utilizar un nivel más arriba del directorio web público. En este ejemplo quedará así nombrando la carpeta como laravel-framework:
cgi-bin/ error_log/ public_html/ ... laravel-framework/ app/ bootstrap/ vendor/ artisan server.php ... otra_carpeta/ otra_mas/ ...
Creen una carpeta con el nombre de su proyecto en la carpeta web pública. En este caso utilizaremos el nombre mi-proyecto:
cgi-bin/ error_log/ public_html/ mi-proyecto/ ... ... laravel-framework/ otra/ otra_mas/ ...
El contenido ‘public‘ del framework debe ir en la carpeta mi-proyecto que creamos.
Una vez copiado el contenido, deben abrir y editar el archivo index.php.
Deben encontrar las siguientes líneas:
require __DIR__.'/../bootstrap/autoload.php'; $app = require_once __DIR__.'/../bootstrap/start.php';
Esas rutas hacen referencia a la carpeta boostrap de Laravel, por lo cual debemos modificarlas para que index.php pueda arrancar el framework. Como pusimos el framework dentro de la carpeta laravel-framework, las rutas deben quedar de esta manera:
require __DIR__.'/../../laravel-framework/bootstrap/autoload.php'; $app = require_once __DIR__.'/../../laravel-framework/bootstrap/start.php';
Ahora tienen que ir a archivo paths.php ubicado en laravel-framework/boostrap y editar el path de public, quedando así:
// El valor de la carpeta puede tomar tanto como public_html, www, htdocs o cualquier otro nombre dependiendo del servidor 'public' => __DIR__.'/../../public_html/mi-proyecto',
Ahora ya podemos acceder a http://localhost/laravel.
Esta opción es recomendada para hosting compartidos en los cuales por ejemplo no tienen acceso SSH como para crear un link simbólico. Lo bueno es que aún así ocultan el framework del acceso público – fuera de la carpeta web pública – y sólo dejan a la vista sólo lo que debe estar.
Si llegan a utilizar packages que generen archivos en el directorio ‘public‘ del framework, se van a generar en la carpeta laravel-framework creando una nueva carpeta ‘public‘ con los archivos generados – no lo he probado pero así debería funcionar -. Si desean cambiar la ruta en donde se generan esos archivos, hay que cambiar el valor de public en el archivo boostrap/paths.php.
LO NO RECOMENDADO
Existe una tercera opción que no voy a detallar, pero consiste en juntar el directorio ‘public’ con la raíz de Laravel, de esa manera el directorio desparece y en su defecto la URL también. No lo detallo ya que es un método sucio y poco seguro, estaríamos dejando al acceso publico los archivos del framework y no es lo recomendado.
//Nombro la fuente del post:
Este post lo realizó: nikoskip de fuubar.
espero que te sirva un saludo!!
Votos: 2 - Link respuesta -
Fecha: 21-01-2016 02:15:37 Hola, debes crear un virtual host, y accedes a tu proyecto desde esa dirección Votos: 2 - Link respuesta
-
Fecha: 27-01-2016 05:35:25 es mas facil a mi parecer hacerlo mediante htaccess, simplemente montarias el proyecto tal cual lo tienes conecta tu bd y listo configura el htaccess con eso te ahoras problemas y posibles errores Votos: 1 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
