reescritura de nginx para wikkawiki

reescritura de nginx para wikkawiki

Simplemente configuré WikkaWiki en mi servidor, he estado intentando que los enlaces vayan wiki.mysite.info/wikka.php?wakka=Startdesde wiki.mysite.info/DotMG.

Intenté seguir su guía enhttp://docs.wikkawiki.org/ModRewrite, sin embargo, parece incompleto y desactualizado. Además, a partir de la versión1.3.2 base_urlNi siquiera se puede configurar manualmente desde el wikka.config.phparchivo.

Estoy usando la versión 1.3.2de WikkaWiki. Mi archivo de hosts virtuales nginx contiene:

server {
    listen 80;

    server_name wiki.mysite.info;

    root /usr/share/nginx/wikka/;

    access_log /usr/share/nginx/.access/wikka;
    error_log /usr/share/nginx/.error/wikka error;

    location / {
            index index.php;
            try_files $uri $uri/ @wikka;
    }

    location @wikka {
            rewrite ^(.*/[^\./]*[^/])$ $1/ last;
            rewrite ^(.*)$ /wikka.php?wakka=$1 last;
    }

    location ~* \.php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include /etc/nginx/fastcgi_params;
    }
}

Hasta ahora funciona, puedo ir wiki.mysite.info/APagey mostrará esa página, sin embargo, no funciona en todas las páginas, en ocasiones el navegador simplemente descarga la página (por alguna razón, siempre descarga la Startpágina).

Además, cuando voy, wiki.mysite.info/se descarga el wikka.phparchivo...

Además, los enlaces en la wiki tienen la leyenda, wikka.php?wakka=por lo que cada vez que navego por la wiki, vuelve a ser wiki.mysite.info/wikka.php?wakka=APage.

Creo que algo anda mal con mi rewritepero no puedo decirlo con seguridad.

Contenido de fastcgi_params:

fastcgi_param   QUERY_STRING            $query_string;
fastcgi_param   REQUEST_METHOD          $request_method;
fastcgi_param   CONTENT_TYPE            $content_type;
fastcgi_param   CONTENT_LENGTH          $content_length;

fastcgi_param   SCRIPT_FILENAME         $request_filename;
fastcgi_param   SCRIPT_NAME             $fastcgi_script_name;
fastcgi_param   REQUEST_URI             $request_uri;
fastcgi_param   DOCUMENT_URI            $document_uri;
fastcgi_param   DOCUMENT_ROOT           $document_root;
fastcgi_param   SERVER_PROTOCOL         $server_protocol;

fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;

fastcgi_param   REMOTE_ADDR             $remote_addr;
fastcgi_param   REMOTE_PORT             $remote_port;
fastcgi_param   SERVER_ADDR             $server_addr;
fastcgi_param   SERVER_PORT             $server_port;
fastcgi_param   SERVER_NAME             $server_name;

fastcgi_param   HTTPS                   $server_https;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param   REDIRECT_STATUS         200;

Respuesta1

Cambie esta línea:

fastcgi_param   SCRIPT_FILENAME         $request_filename;

a:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

e intenta de nuevo.

Respuesta2

Llegué aquí a través de Google y, a pesar de que tuve que encontrar la solución yo mismo, e incluso este hilo tiene más de 1 año, creo que debo publicar aquí mi solución para otras personas traída aquí por Search Engine.

Creo que en nginx, la reescritura en la ubicación @wikka realizada por try_files está provocando un cortocircuito en la llamada al bloque.location ~ \.php

Volver a copiar todo desde el interior del bloque location ~ \.phpresolvió location @wikkael problema. Más enhttp://blog.dot.mg/?t=20

Respuesta3

Acabo de terminar de migrar una antigua instalación de Wikka hacia 1.3.5y desde Apache a Nginx/php-fpm.

Como referencia, aquí está mi definición de vhost con las reglas de reescritura apropiadas:

server {
    listen      80;
    server_name wiki.domain.com;

    root        /var/www/wiki.domain.com;

    access_log  /var/log/nginx/wiki.domain.com.access.log;
    error_log   /var/log/nginx/wiki.domain.com.error.log;

    location / {
        index       wikka.php;
        try_files   $uri $uri/ @wikka;
    }

    location @wikka {
        rewrite (.*)    /wikka.php?wakka=$1;
    }

    location ~ \.php$ {
        try_files       $uri =404;
        fastcgi_pass    unix:/var/run/php5-fpm.sock;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include         fastcgi_params;
    }
}

información relacionada