2010-10-27 8 views
5

Quiero hacer una copia estática de un sitio, conservando las URL existentes. El problema es que las direcciones URL parecían:apache, permite nombres de archivo con '?'

http://mysite/index.php?id=XXX

y Apache no quiere encontrar el archivo "index.php id = XXX?". En cambio, interpreta la solicitud como el archivo "index.php" con la consulta "id = XXX".

¿Cómo puedo pedirle a Apache que deje de manejar el signo de interrogación?


Por último, mi solución:

1) cambiar el nombre de los archivos de "index.php id = XXX?" A "index.php_id = XXX"

2) Añadir a .htaccess:

RewriteEngine On 
RewriteCond %{ENV:REDIRECT_STATUS} ="" 
RewriteCond %{QUERY_STRING} !="" 
RewriteRule ^(.*)$ $1_%{QUERY_STRING} [L] 

Respuesta

5

Escape la ? como %3f: http://www.example.com/index.php%3fid=XXX.

Si incluye el archivo en un directorio que tiene índices activados, Apache generará correctamente los enlaces de este formato. Sin embargo, debe volver a escribir los enlaces en las páginas existentes.

Cuestiones relacionadas