2011-09-22 21 views
5

Tengo un servidor php y quiero reescribir las direcciones URL entrantes. Dado que las solicitudes entrantes son solicitudes posteriores, también quiero que los datos enviados se transfieran a las nuevas URL.PHP Reescribe la url y preserva los datos publicados

He conseguido redirigir URL con las siguientes reglas de reescritura:

RewriteRule ^test/(.*)$ http: //localhost/index.php?data=&1 [NC,L] 

o

RewriteRule ^test/(.*)$ http: //localhost/index.php?data=&1 [NC,R=301] 

También he sabido conservar los datos de correos con la siguiente regla de reescritura:

RewriteRule ^test/(.*)$ http: //localhost/index.php?data=&1 [P] 

El problema es que no puedo los dos al mismo tiempo. ¿Qué estoy haciendo mal? ¿Hay alguna forma de redirigir la URL y conservar los datos de la publicación?

+0

Quiero volver a escribir no volver a dirigir. – reven

Respuesta

8

Es probable que su problema sea que redirige en lugar de reescribir. Los redireccionamientos cambian la URL que las personas ven en el navegador. Reescribe solo cambia la URL que ve tu aplicación PHP. Este último es normalmente lo que quieres. Y en este último caso, las variables POST se conservan automáticamente.

Con el fin de volver a escribir en lugar de redirección, utilice una ruta local en lugar de una dirección URL:

RewriteRule ^test/(.)$ index.php?data=$1 [NC,L] 
+1

Probablemente estuve allí y no lo sabía. Sí, quiero reescribir para no redirigir. Estaba confundido porque estaba viendo la misma URL en el navegador y pensé que la reescritura no funcionó. Pero tienes razón. Aunque pensaste que la URL del navegador es la misma, se ejecuta index.php. Gracias amigo – reven

+0

Esto era exactamente lo que estaba buscando. Gracias – wonderwhy

Cuestiones relacionadas