reescribir URL en htaccess y eliminar todo menos el parámetro


1

¿Es posible activar esta URL:

example.com/send.php?url=google.com&name=&submit=submit

En esta URL:

example.com/google.com

Cuando lo intento, sigo recibiendo errores 404 o 500 y es frustrante.

Aquí hay algunas cosas que he probado.

RewriteRule ^([^/]*)$ /send.php?url=$1&name=&submit=submit [NC,L]
RewriteRule ^([-\w\.]*)$ /send.php?url=$1&name=&submit=submit [NC,L]
RewriteRule ^(.*)$ /send.php?url=$1&name=&submit=submit [NC,L]

Si no es posible, ¿podría decirme por qué no? Soy bastante nuevo en mod_rewrite y quiero aprender.


Respuestas:


0

Puedes probar con las siguientes reglas.

RewriteCond %{REQUEST_URI} !send.php
RewriteRule ^([-\w\.])$ /send.php?url=$1&name=&submit=submit [NC,L]

Gracias, esto funciona! Pero con un patrón diferente. RewriteRule ^([^/]*)$ send.php?url=$1&name=&submit=submit [NC,L] El único problema ahora es que no puedo acceder a la página de inicio. Cuando example.comescribo no va a la página de inicio. Permanece encendido send.phpy el REQUEST_URIes '/'. Entonces mod rewrite solo considera url=que es una cadena vacía.
— penfold_32

No necesita escapar del punto para que coincida con un punto literal en una clase de caracteres, y no necesita la NCbandera aquí, ya que \wya incluye letras mayúsculas y minúsculas. También necesitaría extender el patrón para incluir más caracteres, actualmente solo coincide con 1 carácter. es decir. ^([-\w.]+)$
— MrWhite

@ penfold_32 Su página de inicio se reescribe porque el patrón ^([^/]*)$coincide con 0 caracteres (es decir, la página de inicio /). Cámbielo para incluir 1 o más. p.ej. ^([^/]+)$. Sin embargo, ese patrón parece demasiado genérico, según el ejemplo en su pregunta.
— MrWhite

0

O podrías intentar

RewriteRule ^(.*) /$1/? [L,R=301]

No soy un experto en redireccionamiento, pero creo que el signo de interrogación al final corta todos los parámetros.


0

Si no está reescribiendo nada más, simplemente use:

FallBackResource /send.php

y analizar el PATHINFO


Debería analizar el REQUEST_URI, no el PATH_INFO. (No hay información de ruta adicional en esta solicitud)
— MrWhite

0

Si desea analizar el parámetro para usarlo como archivo / directorio, debe intentar esto:

RewriteRule ^/send\.php\?url=([-\w\.])\&.*$ /$1 [NC,L]

No puede hacer coincidir la cadena de consulta con el RewriteRule patrón . ¿Pero parece que el OP quiere "ir para otro lado"?
— MrWhite

Tienes razón. Lo siento, me olvidé de esto. Estoy más familiarizado con nginx donde es posible.
— Tomgee
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.