1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso

redsys htaccess && no SSL sni

Tema en 'Programación y Diseño Web' iniciado por vicram, 11 Jul 2017.

  1. vicram

    vicram Usuario activo

    buenas,
    hacia tiempo que no pasaba por aquí, ahora tras la fusion de la antigua 4B y otra pasarela de pago esta REDsys la cual no detecta los Certificados SSL en la notificación por capa trasnparentes en los servidores web que la llama.

    Actualmente para devolver los procesos de pago y notificaciones usa este codigo en su API
    CODE, HTML o PHP Insertado:
    $miObj->setParameter("DS_MERCHANT_MERCHANTURL",Ds_Merchant_MerchantURL);
    $miObj->setParameter("DS_MERCHANT_URLOK",Ds_Merchant_UrlOK);       
    $miObj->setParameter("DS_MERCHANT_URLKO",Ds_Merchant_UrlKO);
    
    El problema se presenta cuando DS_MERCHANT_MERCHANTURL llama a una pagina con HTTPS la cual no acepta, y tienen conocimiento de ello. Por lo cual hay que definir una pagina con HTTP.

    Hasta ahora estaba trabajando con un htacees básico:
    CODE, HTML o PHP Insertado:
        Options +FollowSymLinks
        RewriteEngine On
        RewriteCond %{SCRIPT_FILENAME} !-d  
        RewriteCond %{SCRIPT_FILENAME} !-f
    
            RewriteRule ^(.+)$ index.php?id=$1 [QSA,L]
    
    Y necesito añadir las WWW para lo cual hay varias formas y ademas forzamos el SSL
    CODE, HTML o PHP Insertado:
       RewriteCond %{HTTP_HOST} ^domainname.es
       RewriteRule (.*) https://www.domainname.es/$1 [R=301,L]
    
    CODE, HTML o PHP Insertado:
    # force to www
      RewriteCond %{HTTP_HOST} ^(.+)$ [NC]
      RewriteRule ^ https://www.domainname.es%{REQUEST_URI} [L,R=301]
    
    El problema que se me presenta es que ademas hace falta poner una excepción en HTTP
    CODE, HTML o PHP Insertado:
    # force https:// for all except some selected URLs    
    RewriteCond %{HTTPS} off
    RewriteCond %{THE_REQUEST} !/tpv/ [NC]
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    # Esta es la LLAMADA NECESARIA PARA LA NOTIFICACIÓN DE REDSYS y la EXCEPCIÓN
    RewriteCond %{HTTPS} on
    RewriteCond %{THE_REQUEST} /tpv/gototpv/ [NC]
    RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    Si llamo a http://www.domainname.es/tpv/gototpv esta me resuelve bien que es la excepción que necesito

    Se me presenta un problema si le fuerzo las WWW al htacces si llamo a domainname.es este me lo redirige bien a https con sus www, pero si llamo a domainname.es/contacto me muestra en la url https://www.domainname.es/index.php?id=contacto Esto antes no me ocurría pues devolvía siempre https://www.domainname.es/contacto

    Total necesito forzar las WWW, habilitar el HTTPS y una excepción para TPV, sobre tpv no es una carpeta real por lo cual QUERY_STRING no funciona y con REQUEST_URI tampoco he conseguido hacerlo en RewriteCond.

    Gracias por leer este tocho y a ver si podéis ayudarme algo
     
  2.  
  3. egrueda

    egrueda Usuario activo

    Yo lo haría tal que así:

    CODE, HTML o PHP Insertado:
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{REQUEST_URI} !/tpv/ [NC]
    RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    Los dos de un golpe, ¿no?
     
  4. vicram

    vicram Usuario activo

    egrueda he probado con todas las posibilidades, pone las www y solo 1 vez redirige al https, y la llamada a la excepción va pero el https se lo come y desaparece para el resto.
    con tu ejemplo sale exactamente lo mismo
     
  5. vicram

    vicram Usuario activo



Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


      
      
      
      
Sitios amigos: GuiaHosting · Unidominios · Interalta ·