elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Resuelto] ¿Como puedo modificar la URL?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] ¿Como puedo modificar la URL?  (Leído 3,881 veces)
SrTrp


Desconectado Desconectado

Mensajes: 323


Script/C#


Ver Perfil
[Resuelto] ¿Como puedo modificar la URL?
« en: 23 Febrero 2020, 07:00 am »

Bueno eh visto sitios que tiene por ejemplo esto: sitio.com.mx/Menu/panel
¿como puedo hacer eso? lo normal seria sitio.com.mx/Menu/panel.php


« Última modificación: 26 Febrero 2020, 13:13 pm por #!drvy » En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: ¿Como puedo modificar la URL?
« Respuesta #1 en: 23 Febrero 2020, 13:15 pm »

En los archivos de configuración de tu servidor.


En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: ¿Como puedo modificar la URL?
« Respuesta #2 en: 23 Febrero 2020, 15:21 pm »

Se llaman friendly URLs, consiste en usar url rewriting.

https://www.danielmorell.com/guides/htaccess-seo/user-friendly-urls/make-your-urls-seo-friendly


En tu caso si solo quieres convertir Menu/panel.php a Menu/panel, bastaria con quitar la extensión php.


https://stackoverflow.com/questions/4908122/removing-the-php-extension-with-mod-rewrite


Saludos
En línea

MetaNoia

Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
Re: [Resuelto] ¿Como puedo modificar la URL?
« Respuesta #3 en: 28 Febrero 2020, 00:14 am »

Tambien puedes crear tus propias urls para que apunten a un fichero, por ejemplo pongamos que cuando un usuario haga una peticion GET a  "/Menu/panel" desde php vamos a mostrar el fichero "panel.php".

Si algún día usas algún framework se usa mucho lo de crear tus propias urls.De hecho una de las formas de saber si una pagina usa un framework o no es fijarse en las rutas que utiliza.

Lo que te comente antes usando el framework Laravel seria asi:
Fichero donde almacenas todas las rutas de tu aplicación que en Laravel es "web.php"

web.php
Código
  1. <?php
  2. //Peticion GET que apunta al metodo 'getPanel' del Controlador 'MenuController'
  3. Route::get('/Menu/panel', 'MenuController@getPanel');
  4.  

Después tendrás en otro fichero php el controlador "MenuController", que se encarga de recibir todas las peticiones y gestionar la lógica de tu aplicación:

MenuController.php
Código
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Support\Str;
  5.  
  6. class MenuController extends Controller
  7. {
  8.     public function getPanel()
  9.     {
  10.            //Devuelves una vista con ese fichero
  11.            //'menu' indica el nombre de la carpeta donde guardamos las vistas a mostrar y
  12.           // 'panel' el nombre del fichero
  13.            return view('menu.panel');
  14.     }
  15. }
  16.  

Y por ultimo solo nos queda crear las vistas que es lo que se muestra al usuario, en este caso tendremos una carpeta llamada "menu" con un fichero "panel.blade.php"

Asi cuando el usuario ponga la  url "sitio.com.mx/Menu/panel" en su navegador(que es el método GET) se mostrara el contenido del fichero "panel.blade.php" .

Si te mola el tema aquí te dejo enlaces sobre la clase "Route" de php y la documentación de Laravel.
https://codereview.stackexchange.com/questions/120587/php-route-class
https://laravel.com/docs/6.x
En línea

Código:
<?php
       header("Location: TheHackerWay");
@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: [Resuelto] ¿Como puedo modificar la URL?
« Respuesta #4 en: 28 Febrero 2020, 03:14 am »

Casi siempre que se tenga dudas entre hacer algo utilizando la configuración del servidor y hacerlo en php, suele ser mucho más óptimo hacerlo modificando los archivos del servidor.
En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

MetaNoia

Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
Re: [Resuelto] ¿Como puedo modificar la URL?
« Respuesta #5 en: 28 Febrero 2020, 22:35 pm »

Casi siempre que se tenga dudas entre hacer algo utilizando la configuración del servidor y hacerlo en php, suele ser mucho más óptimo hacerlo modificando los archivos del servidor.
Pero en este caso podemos encontrarnos con que sea una ruta personalizada y que no tenga nada que ver con la estructura de directorios del servidor. Por ejemplo ahora me encuentro haciendo una pagina web de retos a lo CTF y las rutas que tengo son las siguientes:
A la hora de especificar las rutas vereis unos '{}', son unos parametros que se pasan por la url de modo que desde el controlador podemos obtenerlos y filtrar resultados.
Código
  1. //RETOS
  2. //Muestra todos los usuarios que han completado esos retos
  3. Route::get('retos/validations/{reto}','RetoController@getValidations');//Ej:http://mypage.com/retos/validations/Nombre-Reto
  4. //Pagina principal que muestra todas las categorias disponibles
  5. Route::get('retos','RetoController@getRetos');;//Ej:http://mypage.com/retos
  6. //Pagina con un formulario para crear reto
  7. Route::get('retos/crear','RetoController@getCrear');;//Ej:http://mypage.com/retos/crear
  8. //Enviando datos para crear reto
  9. Route::post('retos/crear','RetoController@postCrear');;//Peticion POST para crear un nuevo reto
  10. //Obtiene todos los retos de una categoria
  11. Route::get('retos/{categoria}','RetoController@getRetosCategoria');;//Ej:http://mypage.com/retos/reversing
  12. //Muestra un reto especifico
  13. Route::get('retos/{categoria}/{reto}','RetoController@getReto');//Ej:http://mypage.com/reversing/nombre-reto
  14.  
Tomando como referencia el ultimo reto no tendria sentido crear esa estructura de directorios sino que en base a esos parametros puede obtener los datos de ese reto y mostrarselos al usuario en una vista.
El metodo 'getReto' del controlador 'RetoController' es el siguiente, fijaos que recibe los dos parametros pasados en la ruta.
Código
  1. public function getReto($categoria,$reto)
  2.    {
  3.      $idReto =
  4.      Project::where('nombre',$reto)
  5.      ->pluck('id')
  6.      ->all()[0];
  7.  
  8.      return view('retos.mostrar',
  9.      array('reto' => Project::findOrFail($idReto)));
  10.    }
  11.  
Y ya en la vista mostramos el reto que hemos pasado en el array
En línea

Código:
<?php
       header("Location: TheHackerWay");
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines