Ya está refirió a continuación, pero creo que la siguiente receta es una solución bastante impermeable a este problema:
Configurar la redirección
Solicitud de una página a través de su URL reescrito
Si la solicitud devuelve la página en cuestión, tiene la redirección configurada correctamente, si obtiene la respuesta HTTP 404, entonces no está funcionando.
La idea es básicamente que esto funciona con casi cualquier método de redirección. Ya se ha mencionado, pero se reitera, tales trucos agregan bastante sobrecarga y se realizan mejor solo una vez (instalación o desde el panel de configuración) y luego se guardan en la configuración.
algunos detalles de implementación, opciones para hacer y un poco en cómo llegué a esta solución:
recordé Drupal hizo un control de este tipo durante el proceso de instalación, por lo que miraron cómo lo hicieron. Tuvieron que javascript en la página de instalación hacer una solicitud ajax (sincrónicamente, para evitar problemas de concurrencia con la base de datos). Esto requiere que el usuario que instale el software tenga javascript activado, pero no creo que sea un requisito poco razonable.
Sin embargo, creo que usar php para solicitar la página podría ser una solución más limpia. Además de no molestarse con un requisito de JavaScript, también necesita menos datos para enviar y recibir y simplemente no requiere que la lógica de la acción se distribuya en varios archivos. No sé si hay otra (des) ventaja para cualquiera de los métodos, pero esto debería ayudarlo y le permitirá explorar las opciones alternativas usted mismo.
Hay otra opción que hacer: probar en un entorno de prueba o en el sitio normal. Lo que Drupal hace es tener la redirección siempre activada (como en el caso de Apache, tener el archivo .htaccess que redirige solo para ser parte de la descarga de Drupal), pero solo escribir las direcciones de fantasía si la redirección está activada en el configuraciones. Esto tiene la desventaja de que requiere más trabajo detectar qué tipo de redirección se utiliza, pero aún es posible (puede, por ejemplo, agregar una variable GET que muestre el motor de redirección en una página de prueba específica o incluso en cada página, o puede redirigir a una página que establece $redirectionEngine
y luego incluye el índice real). Aunque no tengo mucha experiencia con la redirección que no sea con mod_rewrite en apache, creo que esto debería funcionar con casi todos los motores de redirección.
La otra opción aquí es utilizar un entorno de prueba. Básicamente, la idea es crear una carpeta y configurar una redirección para ella, o eliminar la necesidad de acceso de escritura del sistema de archivos y en su lugar tener una carpeta (o una carpeta para cada motor de redirección).Esto tiene algunas desventajas: todavía necesita acceso de escritura para configurar el redireccionamiento para el sitio principal (aunque tal vez no para todo el motor de redirección, realmente no sé cómo se configuran correctamente, pero para apache necesitará acceso de escritura si va a activar la redirección), podría ser más fácil para un bot detectar qué software y qué versión de él está utilizando al acceder a las pruebas (a menos que elimine las carpetas de prueba después de las pruebas) y necesita poder reescriba solo una parte del sitio (lo cual tiene sentido para cualquier motor de redirección, pero no voy a asumir esta funcionalidad). Sin embargo, esto viene con la ventaja de que es más fácil averiguar qué motor de reescritura se está utilizando o, básicamente, cualquier otro aspecto de la redirección. También podría haber otras ventajas que no conozco, así que simplemente le doy las opciones y le dejo elegir su método usted mismo.
Con algunas opciones para el usuario, creo que esto debería ayudarlo a configurar el sistema de la manera que desee.
Sí, gracias por la respuesta. Me olvidé por completo de las funciones específicas de Apache. –
Gran solución para Apache. Estaba pensando en la misma línea. –