urls obtener actual php frameworks laravel

php - obtener - Laravel 4 eliminando el público de la URL



url params laravel (19)

ACTUALIZACIÓN: este método también funciona con Laravel 5

Aquí está mi estructura de directorio,

/laravel/ ... app ... bootstrap ... public ... etc

Sigue estos sencillos pasos

  1. mover todos los archivos del directorio público a root / laravel /
  2. ahora, no necesita directorio público, entonces opcionalmente puede eliminarlo ahora
  3. ahora abra index.php y realice los siguientes reemplazos

requiere DIR . ''/ .. / bootstrap / autoload.php'';

a

requiere DIR . ''/ bootstrap / autoload.php'';

y

$ app = require_once DIR . ''/ .. / bootstrap / start.php'';

a

$ app = require_once DIR . ''/ bootstrap / start.php'';

  1. ahora abra bootstrap / paths.php y cambie la ruta del directorio público:

''public'' => DIR . ''/ .. / public'',

a

''public'' => DIR . ''/ ..'',

y eso es todo, ahora prueba http: // localhost / laravel /

Entonces, estoy ejecutando xampp en Windows. Actualmente estoy tratando de familiarizarme con el marco de laravel. Ahora, cuando eso se señaló. ¿Cómo puedo acceder a mi aplicación / sitio web directo desde la raíz?

Ejemplo,

  • Lo que estoy haciendo ahora es: localhost / laravel / public / about (para ver la página acerca de)
  • Lo que quiero hacer es: localhost / laravel / about

¿Alguna buena solución para esto? ¿Necesito agregar un archivo .htacess en la carpeta raíz de laravel? (no el público).

¿Alguna sugerencia?


Agregue el siguiente código al archivo htaccess. Puede ser de ayuda.

<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ public/$1 [L] </IfModule>


Agregue el siguiente código en su .htaccess (si no existe, cree un .htaccess en el directorio raíz de laravel)

<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ public/$1 [L] </IfModule>

Fuente: http://tutsnare.com/remove-public-from-url-laravel/

en Source también obtienes otro método para hacer lo mismo.

Actualización: la forma preferida de hacerlo es hacer cambios en la estructura del directorio que explica en la URL fuente.


Así es como lo hice.

  1. Edite su archivo de host de Windows - C: / Windows / System32 / drivers / etc / hosts
  2. Edite el archivo de vhosts de Apache - Drive-Letter: / xampp / apache / conf / extra / httpd-vhosts.conf
  3. Agregue un archivo htaccess a la carpeta laravel / public (si aún no está allí)
  4. Reinicie el servidor de Xampp apache

Windows puede ser un PITA real al tratar de editar el archivo Hosts debido al control de cuentas de usuario. Como trabajo en todo tipo de pequeños proyectos de hobby, tengo que editar este archivo todo el tiempo, así que esto es lo que hago.

  • Instalar PSPad. Se carga muy rápido y puede marcar los archivos para facilitar su carga / edición. Sublime Text también funciona bien si carga los dos archivos que mencioné anteriormente y guarda el espacio de trabajo como un nuevo proyecto.
  • Haga clic derecho en el acceso directo del programa PSPad (u otro editor) y seleccione ''Ejecutar como administrador''. No puede guardar cambios en el archivo Hosts a menos que haga esto.
  • Abra el archivo de Windows Host en el editor. Este archivo no tiene una extensión de archivo, por lo que debe elegir "Todos los archivos" en el cuadro de diálogo Abrir archivo para ver el archivo.
  • En la parte inferior del archivo, agrega esto:

    127.0.0.1 laravel.dev

    Esto le indica a Windows que dirija el navegador web a localhost siempre que ingrese laravel.dev en la barra de direcciones del navegador.

  • Guarda el archivo.
  • Abra el archivo xampp Apache httpd-vhosts.conf.
  • En la parte inferior del archivo, agregue esto: (supongo que xampp está instalado en la raíz de la unidad D:)

    <VirtualHost *:80> ServerName laravel.dev DocumentRoot "D:/xampp/htdocs/laravel/public" <Directory "D:/xampp/htdocs/laravel/public"> </Directory> </VirtualHost>

  • Agregue un archivo htaccess a su carpeta laravel / public (si aún no está allí). Creo que el archivo htaccess predeterminado que viene con L4 tiene este aspecto:

    Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]

  • Reinicie su servidor xampp apache.
  • Abra un navegador web y escriba en la barra de direcciones - http://laravel.dev
  • Eso lo llevará al archivo index.php en la carpeta "pública".
  • Para ir a la página Acerca de, creo que la dirección sería http://laravel.dev/about

Debes hacer lo siguiente:

  1. primero copie todos los contenidos del directorio público en su directorio raíz, es decir, lleve el contenido de la carpeta pública 1 paso hacia arriba.

  2. modificar los contenidos de index.php

Desde =>

require __DIR__ . "/../bootstrap/autoload"; $app = require_once __DIR__ . "/../boostrap/start.php"

To =>

"require __DIR__.''/bootstrap/autoload.php'';" "$app = require_once __DIR__.''/bootstrap/start.php'';

y también el contenido de bootstrap / paths.php

From => ''public'' => __DIR__.''/../../'',

To => ''public'' => __DIR__.''/..'',

3. Luego, cree el archivo .htaccess en su directorio raíz y escriba esto.

<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> RewriteEngine On RewriteRule ^(.*)/$ /$1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>


Establezca la raíz del documento para apache en la carpeta pública, y no en la carpeta laravel. Esta es la técnica más simple y recomendada para entornos de producción.


He encontrado que el flujo de geart funciona con laravel localy.

Lo que puedes hacer es configurar xampp un poco. En el archivo httpd.conf de su xamp, debe encontrar el documento DocumentRoot y <Directory> . Cambie el directorio raíz a su carpeta pública laravel y reinicie Apache. Desde cuando puedes acceder a tu proyecto simplemente escribiendo "localhost". Ahora, si lo desea, puede cambiar su archivo de host y reescribir dns locales, por ejemplo: 127.0.0.1 example.laravel.com y ahora puede acceder a su proyecto con url real. Puede parecer un poco complicado, pero no lo es.

Alternativa a eso sería php artisan serve . Puede iniciar el servidor en diferentes puertos y volver a escribir el archivo de hosts.

Puede agregar algunas características para mejorar aún más su flujo de trabajo, por ejemplo ngrok o ngrok . Puede compartir su proyecto para la presentación en vivo (la velocidad puede ser un problema aquí).


Mueva el contenido de la carpeta / public hacia abajo un nivel.

Tendrá que actualizar las líneas de inclusión en index.php para señalar a la ubicación correcta. (si está en un nivel inferior, elimine el ''../'').


Necesidad de eliminar segmento público en la aplicación larvel4

Laravel 4 requiere que pongas el código de tu aplicación un nivel más alto que la raíz web, y esto causa problemas para algunos desarrolladores que están atascados en el alojamiento compartido y eso no permite una configuración como esta. En realidad, es muy fácil sortearlo. Leí que algunos paquetes específicos de L4 podrían tener problemas en una configuración como esta, pero todavía no experimenté nada de eso con ningún paquete.

Entonces primero instale L4 en algún lugar que desee. Me gustó el artículo que Niall escribió para mantener actualizada la aplicación base L4, así que ve y revisa eso: Instalación y actualización de Laravel 4

Creo que es suficiente con este ejemplo simplemente clonar el repositorio (suponiendo que tiene un compositor instalado globalmente; si no, vaya a http://getcomposer.org/ ):

git clone -b develop git://github.com/laravel/laravel.git app_name

instalación de php composer

Tenga en cuenta que estamos clonando la rama de desarrollo ya que L4 todavía está en beta en este momento.

Por lo tanto, para eliminar la parte "pública" de su URL, simplemente mueva todos los archivos y carpetas de la carpeta pública a la raíz de la aplicación y terminará con una estructura de carpetas como esta:

/app /bootstrap /packages (copied from /public) /vendor .htaccess (copied from /public) artisan composer.json favicon.ico (copied from /public) index.php (copied from /public) robots.txt (copied from /public) server.php

Ahora tenemos que editar nuestros caminos en index.php:

require __DIR__.''/bootstrap/autoload.php''; $app = require_once __DIR__.''/bootstrap/start.php'';

Y luego simplemente configure el dir público en el archivo /bootstrap/paths.php:

''public'' => __DIR__.''/..'',

esta es mi sugerencia


Pasos simples a seguir:

  1. Cambiar el nombre de server.php (en el directorio raíz) a index.php
  2. Copie el archivo .htaccess del directorio público al directorio raíz

Puede usar enlaces simbólicos o editar el archivo httpd.conf .

Verifique mi respuesta a otra pregunta similar. Espero que ayude.


Si no desea pasar por el estrés de configurar el archivo .htaccess , puede usar PHP Built-in Server al hacer esto:

  1. Desde tu utilidad de comando, cd en laravel/public
  2. La ejecución: php -S localhost:8000

Después de que pueda acceder a su sitio web, vaya a:

http:://localhost:8000

funciona sin agregar public

Consulte el manual oficial para obtener más información: http://php.net/manual/en/features.commandline.webserver.php


También he estado luchando con este problema, pero he encontrado una solución simple que solo requiere que crees otro .htaccess en la raíz de tu aplicación.

El .htaccess en sí debería contener esto:

RewriteEngine On RewriteCond %{HTTP_HOST} ^{yoursite}.{extension} [NC] RewriteRule (.*) http://www.{yoursite}.{extension}/$1 [R=301,L] RewriteCond %{REQUEST_URI} !public/ RewriteRule (.*) /public/$1 [L]

El sistema completo sigue funcionando pero lo redirige a la carpeta / public.

Así es como resolví el problema por mí mismo.

¡Espero eso ayude!

Aclamaciones.


Vaya a la carpeta del proyecto usando cmd y escriba "php artisan serve". Ahora navegue a: localhost: 8000


cambie el nombre de server.php a index.php y copie .htaccess from /public es el camino correcto. Si envía su aplicación en línea, simplemente cambie DocumentRoot a la ruta de acceso público.


si elimina public from url, primero mueva los archivos index.php y .htaccess de la carpeta pública a la raíz del laravel y cambie en el archivo index.php

requiere DIR. ''/ .. / bootstrap / autoload.php''; $ app = require_once DIR. ''/ .. / bootstrap / start.php'';

a

requiere DIR. ''/ bootstrap / autoload.php''; $ app = require_once DIR. ''/ bootstrap / start.php'';

y ejecutar el programa


solo en el paso simple que hice en laravel 5 haga .htaccess como este en la carpeta laravel

<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> RewriteEngine On # Redirect Trailing Slashes... RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ ./index.php [L] </IfModule>

luego cambie el nombre de su server.php a index.php

que funcionará

o si solo estás haciendo desarrollo local

ejecutar este coman php artisan serve

iniciará el servidor local en localhost:8000 (el puerto puede variar)


Estoy usando L5. Esto funciona bien para mí:

  1. Cambie el nombre de server.php en la carpeta raíz de Laravel a index.php
  2. copie el archivo .htaccess del directorio / public en su carpeta raíz de Laravel.

- ¡Eso es todo!