We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
Nginx rewrite problem with web template dokuwiki
Nginx rewrite problem with web template dokuwiki
I have installed VestaCP on CentOS 7. I wanted to use dokuwiki on my server. So in "EDITING DOMAIN -->Web Template NGINX" I choose "dokuwiki".
Under this configuration dokuwiki runs fine unless I choose "userewrite".
The rewrite works fine for main pages of the dokuwiki, that is, when I type mydomain.com/start, rewrite works fine.
But for media it give me 404 error, that is, mydomain.com/_media/pic.jpg gave me 404 error, while its equivalent page mydomain.com/lib/exe/fetch.php?media=pic.jpg works fine. It means rewrite is not working good for this.
Here is the code of dokuwiki template provided with VestaCP.
Here is the web error log.
I also tried with CentOS 6.9 and Ubuntu 16.04. I am getting the same error. Anyone's help and comments in this regards is highly appreciated. Please remember, I am not expert in this field and I just try to do things my self.
Under this configuration dokuwiki runs fine unless I choose "userewrite".
The rewrite works fine for main pages of the dokuwiki, that is, when I type mydomain.com/start, rewrite works fine.
But for media it give me 404 error, that is, mydomain.com/_media/pic.jpg gave me 404 error, while its equivalent page mydomain.com/lib/exe/fetch.php?media=pic.jpg works fine. It means rewrite is not working good for this.
Here is the code of dokuwiki template provided with VestaCP.
Code: Select all
server {
listen %ip%:%web_port%;
server_name %domain_idn% %alias_idn%;
root %docroot%;
index index.php index.html index.htm;
access_log /var/log/nginx/domains/%domain%.log combined;
access_log /var/log/nginx/domains/%domain%.bytes bytes;
error_log /var/log/nginx/domains/%domain%.error.log error;
location / {
index doku.php;
try_files $uri $uri/ @dokuwiki;
location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
expires max;
}
location ~ [^/]\.php(/|$) {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_pass %backend_lsnr%;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
location ~ ^/lib.*\.(gif|png|ico|jpg)$ {
expires 30d;
}
location ^~ /conf/ { return 403; }
location ^~ /data/ { return 403; }
location @dokuwiki {
rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;
rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last;
rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last;
rewrite ^/(.*) /doku.php?id=$1 last;
}
error_page 403 /error/404.html;
error_page 404 /error/404.html;
error_page 500 502 503 504 /error/50x.html;
location /error/ {
alias %home%/%user%/web/%domain%/document_errors/;
}
location ~* "/\.(htaccess|htpasswd)$" {
deny all;
return 404;
}
location /vstats/ {
alias %home%/%user%/web/%domain%/stats/;
include %home%/%user%/conf/web/%domain%.auth*;
}
include /etc/nginx/conf.d/phpmyadmin.inc*;
include /etc/nginx/conf.d/phppgadmin.inc*;
include /etc/nginx/conf.d/webmail.inc*;
include %home%/%user%/conf/web/nginx.%domain%.conf*;
}
Code: Select all
2018/03/05 14:07:10 [error] 13319#13319: *2251 open() "/home/admin/web/mydomain.com/public_html/_media/pic.jpg" failed (2: No such file or directory), client: 119.160.71.49, server: mydomain.com, request: "GET /_media/pic.jpg HTTP/1.1", host: "mydomain.com", referrer: "http://mydomain.com/start"
Re: Nginx rewrite problem with web template dokuwiki
it will also show a 404 with incorrect file access rights.