Estoy teniendo suerte conversión de reglas htaccess para nginx reescribir. He comprobado las NginxRewriteModule documentación y tienen un par de hacer, pero el más complicado que yo estoy en una pérdida para las. Aquí está lo que estoy buscando:

RewriteRule    ^$                                               /cgi-bin/index.cgi [L]
RewriteRule    ([0-9A-Za-z]{12})-del-([0-9A-Za-z]+)/.+$         /cgi-bin/index.cgi?del=$1-$2 [L]

RewriteCond     %{REQUEST_FILENAME} !-f

RewriteRule    ^([0-9A-Za-z]{12})(\.html?|$)$                   /cgi-bin/index.cgi?op=download1&id=$1 [L]
RewriteRule    ^([0-9A-Za-z]{12})(\/.+|\.html?|$)               /cgi-bin/index.cgi?op=download1&id=$1&fname=$2 [L]
RewriteRule    ^([0-9A-Za-z\-_]{4,64})/([0-9A-Za-z]{12})$   /cgi-bin/index.cgi?op=download1&usr_login=$1&id=$2 [L]
RewriteRule    ^([0-9A-Za-z\-_]{4,64})/([0-9A-Za-z]{12})(\/.+|\.html?|$)        /cgi-bin/index.cgi?op=download1&usr_login=$1&id=$2&fname=$3 [L]

#RewriteRule    ^Reseller\.html$                                         /cgi-bin/Templates/Pages/english/Reseller.html [L]
RewriteRule    ^checkfiles\.html$                                       /cgi-bin/index.cgi?op=checkfiles [L]
RewriteRule    ^contact\.html$                                          /cgi-bin/index.cgi?op=contact [L]
RewriteRule    ^premium\.html$                                          /cgi-bin/index.cgi?op=payments [L]
RewriteRule    ^login\.html$                                            /cgi-bin/index.cgi?op=login [L]
RewriteRule    ^catalogue(.*)\.html$                                    /cgi-bin/index.cgi?op=catalogue&date=$1 [L]
RewriteRule    ^news([0-9]*)\.html$                                     /cgi-bin/index.cgi?op=news&page=$1 [L]
RewriteRule    ^n([0-9]+)-.*\.html$                                     /cgi-bin/index.cgi?op=news_details&news_id=$1 [L]
RewriteRule    ^free([0-9]+)\.html$                     /cgi-bin/index.cgi?op=registration&aff_id=$1 [L]
RewriteRule    ^users/([0-9A-Za-z\-_]{4,64})/?([0-9]+|$)        /cgi-bin/index.cgi?op=user_public&usr_login=$1&fld_id=$2 [L,NC]
RewriteRule    ^embedmp3-([0-9A-Za-z]{12})\.html$   /cgi-bin/index.cgi?op=mp3_embed&file_code=$1 [L]
RewriteRule    ^embedmp4-([0-9A-Za-z]{12})\.html$   /cgi-bin/index.cgi?op=mp32_embed&file_code=$1 [L]
RewriteRule    ^box$                                    /cgi-bin/index_box.cgi [L]

RewriteCond     %{REQUEST_FILENAME} !-f
RewriteCond     %{REQUEST_FILENAME} !-d
RewriteRule    ^([0-9A-Za-z\-_]{4,64})(/[^\/]*/?|$)$            /cgi-bin/index.cgi?op=user_public&usr_login=$1&fld=$2 [L,NC]

RewriteCond     %{REQUEST_FILENAME} !-f
RewriteRule    ^([a-z0-9\-\_]+).html(.*)                        /cgi-bin/index.cgi?op=page&tmpl=$1$2 [L]
InformationsquelleAutor cheifops | 2011-04-30

5 Comentarios

  1. 36

    Herramientas en línea para traducir Apache .htaccess para Nginx reescribir herramientas incluyen:

    Tenga en cuenta que estas herramientas se convertirá en el equivalente la reescritura de expresiones utilizando if declaraciones, pero deben ser convertidos a try_files. Ver:

    • este no parece estar trabajando para mí, pero este hizo: winginx.com/htaccess
    • Tampoco trabajo para mí. He intentado un muy básica regla de reescritura.
    • me puede decir, donde debería uso de la salida ? en el archivo php ? He usado de este, y me dio una salida contenida if, Ahora quiero saber cómo debo utilizar ?
  2. 10

    No lo he probado aún, pero la apariencia es mejor que el Alex menciona.

    La descripción en winginx.com/en/htaccess dice:

    Acerca de la htaccess para nginx converter

    El servicio es convertir un Apache .htaccess para la configuración de nginx instrucciones.

    Primero de todo, el servicio fue pensado como un mod_rewrite para nginx convertidor. Sin embargo, permite convertir algunas otras instrucciones que tienen razón de ser portado de Apache a nginx.

    Nota servidor de instrucciones (por ejemplo, php_value, etc.) se omiten.

    El convertidor no comprueba la sintaxis, incluyendo las expresiones regulares y los errores de lógica.

    Por favor, compruebe el resultado de forma manual antes de usar.

    • winginx.com/htaccess no trabajo
    • Acabo de notar ayer que es ahora mismo, sí. Esperemos que vuelva a estar en línea.
  3. 2

    Usted puede fácilmente hacer un script de Php para analizar tu viejo htaccess, estoy usando este para PRestashop reglas :

    $contenido = $_POST[‘contenido’];

        $lines   = explode(PHP_EOL, $content);
        $results = '';
    
        foreach($lines as $line)
        {
            $items = explode(' ', $line);
    
            $q = str_replace("^", "^/", $items[1]);
    
            if (substr($q, strlen($q) - 1) !== '$') $q .= '$';
    
            $buffer = 'rewrite "'.$q.'" "'.$items[2].'" last;';
    
            $results .= $buffer.PHP_EOL;
        }
    
        die($results);
    
    • Es una pena que un medio decente respuesta fue perjudicado por un frívolo comentario. He editado a cabo.
    • Esta respuesta puede ser un salvavidas como una solución rápida de todos modos , pero es mejor no volver a escribir como este. Especialmente para un sitio web de comercio electrónico. Por favor, lea este doc nginx.com/resources/wiki/start/topics/examples/…

Dejar respuesta

Please enter your comment!
Please enter your name here