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.

penfold_32
fuente

Respuestas:

0

Puedes probar con las siguientes reglas.

RewriteCond %{REQUEST_URI} !send.php
RewriteRule ^([-\w\.])$ /send.php?url=$1&name=&submit=submit [NC,L]
serverliving.com
fuente
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.

Schuggerleo
fuente
0

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

FallBackResource /send.php

y analizar el PATHINFO

No creyente
fuente
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]
tomgee
fuente
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