rewriterule redirectmatch htaccess examples enmascarar ejemplos another php apache mobile centos weblogic

php - redirectmatch - Apache HTTPD Redirect para dispositivos móviles.



rewriterule flags (4)

Para obtener una lista completa del agente de usuario para dispositivos móviles, vaya a: http://detectmobilebrowsers.com/

Aquí un extracto para apache:

RewriteEngine On RewriteBase / RewriteCond %{HTTP_USER_AGENT} (android|bb/d+|meego).+mobile|avantgo|bada//|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge/ |maemo|midp|mmp|mobile.+firefox|netfront|opera/ m(ob|in)i|palm(/ os)?|phone|p(ixi|re)//|plucker|pocket|psp|series(4|6)0|symbian|treo|up/.(browser|link)|vodafone|wap|windows/ ce|xda|xiino [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a/ wa|abac|ac(er|oo|s/-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|/-m|r/ |s/ )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw/-(n|u)|c55//|capi|ccwa|cdm/-|cell|chtm|cldc|cmd/-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc/-s|devi|dica|dmob|do(c|p)o|ds(12|/-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(/-|_)|g1/ u|g560|gene|gf/-5|g/-mo|go(/.w|od)|gr(ad|un)|haie|hcit|hd/-(m|p|t)|hei/-|hi(pt|ta)|hp(/ i|ip)|hs/-c|ht(c(/-|/ |_|a|g|p|s|t)|tp)|hu(aw|tc)|i/-(20|go|ma)|i230|iac(/ |/-|//)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(/ |//)|klon|kpt/ |kwc/-|kyo(c|k)|le(no|xi)|lg(/ g|//(k|l|u)|50|54|/-[a-w])|libw|lynx|m1/-w|m3ga|m50//|ma(te|ui|xo)|mc(01|21|ca)|m/-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(/-|/ |o|v)|zz)|mt(50|p1|v/ )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)/-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|/-([1-8]|c))|phil|pire|pl(ay|uc)|pn/-2|po(ck|rt|se)|prox|psio|pt/-g|qa/-a|qc(07|12|21|32|60|/-[2-7]|i/-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55//|sa(ge|ma|mm|ms|ny|va)|sc(01|h/-|oo|p/-)|sdk//|se(c(/-|0|1)|47|mc|nd|ri)|sgh/-|shar|sie(/-|m)|sk/-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h/-|v/-|v/ )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl/-|tdg/-|tel(i|m)|tim/-|t/-mo|to(pl|sh)|ts(70|m/-|m3|m5)|tx/-9|up(/.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|/-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(/-|/ )|webc|whit|wi(g/ |nc|nw)|wmlb|wonu|x700|yas/-|your|zeto|zte/-) [NC] RewriteRule ^$ https://m.site.com/login [R,L]

Y para la prueba, use google chrome (f12) y haga clic en "cambiar el modo del dispositivo" y jugar con el agente de usuario y el ancho de la pantalla.

Correcto, tengo varios sitios y estoy intentando implementar un redireccionamiento a la versión móvil del sitio, si el dispositivo que accede al sitio de escritorio es móvil.

He hecho esto en PHP en el pasado, y en .js, pero este sitio me está dando problemas.

RewriteEngine on RewriteLogLevel 9 RewriteLog /home/BenTen/rewrite.log RewriteCond %{HTTP_HOST} !^dev.site.com$ RewriteRule ^/(.*) https://dev.site.com/$1 [L,R] RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [L,R] #cb5b3ebd6f2cb1c07a18cc033783c9e5 = mobile hashed value RewriteCond %{HTTP_COOKIE} !device_type=cb5b3ebd6f2cb1c07a18cc033783c9e5 RewriteCond %{HTTP_USER_AGENT} (android|bb/d+|meego).+mobile|avantgo|bada//|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge/ |maemo|midp|mmp|netfront|opera/ m(ob|in)i|palm(/ os)?|phone|p(ixi|re)//|plucker|pocket|psp|series(4|6)0|symbian|treo|up/.(browser|link)|vodafone|wap|windows/ (ce|phone)|xda|xiino [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a/ wa|abac|ac(er|oo|s/-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|/-m|r/ |s/ )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw/-(n|u)|c55//|capi|ccwa|cdm/-|cell|chtm|cldc|cmd/-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc/-s|devi|dica|dmob|do(c|p)o|ds(12|/-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(/-|_)|g1/ u|g560|gene|gf/-5|g/-mo|go(/.w|od)|gr(ad|un)|haie|hcit|hd/-(m|p|t)|hei/-|hi(pt|ta)|hp(/ i|ip)|hs/-c|ht(c(/-|/ |_|a|g|p|s|t)|tp)|hu(aw|tc)|i/-(20|go|ma)|i230|iac(/ |/-|//)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(/ |//)|klon|kpt/ |kwc/-|kyo(c|k)|le(no|xi)|lg(/ g|//(k|l|u)|50|54|/-[a-w])|libw|lynx|m1/-w|m3ga|m50//|ma(te|ui|xo)|mc(01|21|ca)|m/-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(/-|/ |o|v)|zz)|mt(50|p1|v/ )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)/-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|/-([1-8]|c))|phil|pire|pl(ay|uc)|pn/-2|po(ck|rt|se)|prox|psio|pt/-g|qa/-a|qc(07|12|21|32|60|/-[2-7]|i/-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55//|sa(ge|ma|mm|ms|ny|va)|sc(01|h/-|oo|p/-)|sdk//|se(c(/-|0|1)|47|mc|nd|ri)|sgh/-|shar|sie(/-|m)|sk/-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h/-|v/-|v/ )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl/-|tdg/-|tel(i|m)|tim/-|t/-mo|to(pl|sh)|ts(70|m/-|m3|m5)|tx/-9|up(/.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|/-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(/-|/ )|webc|whit|wi(g/ |nc|nw)|wmlb|wonu|x700|yas/-|your|zeto|zte/-) [NC] RewriteRule ^/(.*)$ https://m.site.com/login [R,L]

Así que estoy reiniciando el servicio en CentOS usando / sbin / service httpd restart

y obtengo mensajes exitosos a partir de esto, pero no parece estar retomando la redirección desde la interfaz.

Realmente bajo presión para que esto funcione, y realmente estoy luchando por obtener valores de registro reales.

¿Debo rebotar el servidor para recoger esto?

está en weblogic 11.

Gracias de nuevo, Ben


No creo tener la respuesta, pero le daré algunos detalles sobre lo que haré con esto:

1-Deshabilite las reglas de HTTP para probar las rutas de Mobile independientes.

2-Mueva finalmente las reglas HTTPS debajo de las móviles; aunque no haría eso en producción para evitar una coincidencia previa innecesaria en el agente de usuario solo para descubrir que la solicitud era http.

3-No probar con navegadores, debido a las reglas de caché del navegador, simplemente prueba con

curl -IL -A "Mozilla/5.0 (Linux; Android 4.4; Nexus 5 Build/_BuildID_) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36"

y para verificar los encabezados en la salida curl. Esperas ver una respuesta de "Ubicación".


Bien, entendí, el texto en sí era correcto, solo me exigió que lo añadiera en dos lugares.

one - /opt/local/apache-2.2.17/conf.d/ssl.devservice.conf <El código se coloca inmediatamente después de SSLEngine On - supervisa todo el tráfico / solicitudes HTTPS.

two - /opt/local/apache-2.2.17/conf.d/rewrite.devservice.conf <- supervisa solo el tráfico HTTP.

Espero que esto ayude a alguien, me tomó demasiado tiempo entender esto.

Gracias de nuevo por tu ayuda :)


Cambio

RewriteRule ^/(.*)$ https://m.site.com/login [R,L]

a

RewriteRule ^(.*)$ https://m.site.com/login [R,L]

(O puede simplificar aún más

RewriteRule ^(.*)$ https://m.site.com/login [R,L]

ya que no necesita la referencia posterior. Se relacionará con su configuración y la forma en que se canonicaliza la ruta antes de pasarla a .htaccess)