www webhosting urls registrarse personalizada modificar mod_rewrite htaccess gratis files espaƱol dinamicas dinamica desde crear con amigables 000webhost php web-hosting

php - urls - webhosting



Reescritura de URL en PHP sin htaccess (5)

El sitio web se ejecuta en un servidor web en el que no tenemos acceso a un archivo .htaccess . Sin embargo, quiero hacer la reescritura de URL para URL fáciles de usar.

por ejemplo, URL original

www.example.com/file?q=name

URL esperada

www.example.com/file/name


Como dijeron otras personas, solo use enlaces como /index.php/nice/looking/url .
El "index.php" en el medio de la URL puede parecer un poco extraño, pero no creo que sea posible que se vea mejor sin .htaccess

De lo contrario, podría pedirle a su proveedor de alojamiento que redirija cualquier URL a /index.php para que pueda manejar la reescritura de URL sin tener /index.php en su URL.

Luego puedes usar una coincidencia de expresiones regulares para detectar qué archivo incluir.
preg_match(''@[/]{1}([a-zA-Z0-9]+)@'', $_SERVER["PATH_INFO"], $matches) ($ matches contendrá todas las "partes" de la url en un formación)

Tenga cuidado al incluir los archivos, use una lista blanca para asegurarse de que nadie pueda cargar los archivos internos.


Prueba esto

www.example.com/file?q=name

a

www.example.com/name (mejor que www.example.com/file/name )

Abra su .htaccess desde la carpeta raíz de su proyecto y agregue este código

Options +FollowSymLinks RewriteEngine On RewriteRule /.(js|css|jpe?g|png|gif)$ - [L] RewriteRule "^([ /w-]+)/?$" /file?q=$1 [L,QSA]

Esto resuelve tu problema. Vea la publicación cómo reescribir la URL en .htaccess


Si tiene un servidor Apache y AcceptPathInfo está habilitado, puede usar la URL que escribió. Una solicitud de /file/name se reescribirá automáticamente en /file con el valor PATH_INFO de /name if /file es un archivo normal.


Su mejor opción será tener URLs como esta:

www.example.com/index.php/file/name

Sin embargo, deberás volver a escribir tu código PHP.


como Alix Axel sugirió que puedes usar

www.example.com/index.php/file/name

luego usará $_SERVER[''REQUEST_URI''] para procesar la URL.