I have installed VestaCP with nginx + php-fpm on CentOS 7. It include web template for dokuwiki.
It work fine unless one use the "userewrite".
With userewrite, the namespaces works fine but the problem arises with the media files. We get 404 error with media files.
Here is part of error log while calling mydomain.com/_media/pic.jpg
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"
The following Web Template is used to make Nginx conf. file
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*;
}
I will highly appreciate anyone's help or comments in this regards
Edited: The post has been edited to understand the problem easily. I think it is not dokuwiki related problem. It is related to Nginx rewrite.