
Simplemente configuré WikkaWiki en mi servidor, he estado intentando que los enlaces vayan wiki.mysite.info/wikka.php?wakka=Start
desde 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_url
Ni siquiera se puede configurar manualmente desde el wikka.config.php
archivo.
Estoy usando la versión 1.3.2
de 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/APage
y 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 Start
página).
Además, cuando voy, wiki.mysite.info/
se descarga el wikka.php
archivo...
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 rewrite
pero 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 ~ \.php
resolvió location @wikka
el problema. Más enhttp://blog.dot.mg/?t=20
Respuesta3
Acabo de terminar de migrar una antigua instalación de Wikka hacia 1.3.5
y 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;
}
}