目前我把 nginx 搞砸了很多。
我确实基于 nginx 将 ownCloud 从托管解决方案移动到自己的 VPS。
经过一些问题,现在它运行良好,但有一件事我无法深入研究。
调用:owncloud.domain.tld :: OK 单击“文件图标”,实际上重定向到当前视图,但 URL 应更改为:owncloud.domain.tld/index.php/apps/files :: FAILS
因为 nginx(或介于两者之间)将“ index.php/apps/files
”转换为“ index.php/apps/index.php
”......那里有什么?我怎样才能解决这个问题?呼叫“ index.php/apps/gallery
”和其他人甚至可以正常工作!
nginx文件:
# cloud.xyz.de
server {
listen *:80;
server_name cloud.xyz.de;
server_tokens off;
root /nowhere;
rewrite ^ https://$server_name$request_uri permanent;
}
server {
listen *:443;
server_name cloud.xyz.de;
access_log /var/log/nginx/cloud_access.log;
error_log /var/log/nginx/cloud_error.log;
client_max_body_size 10G; # set max upload size
fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
rewrite ^/apps/calendar/caldav.php /remote.php/caldav/ last; # this was injected after some reading in the WWW
rewrite ^/apps/contacts/carddav.php /remote.php/carddav/ last; # this was injected after some reading in the WWW
rewrite ^/apps/([^/]*)/(.*\.(css|php))$ /index.php?app=$1&getfile=$2 last; # this was injected after some reading in the WWW
rewrite ^/remote/(.*) /remote.php last; # this was injected after some reading in the WWW
root /var/www/cloud.xyz.de;
index index.php index.html index.htm;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
ssl on;
ssl_certificate /etc/ssl/certs/xyz_de.crt;
ssl_certificate_key /etc/ssl/private/xyz_de.key;
ssl_protocols SSLv3 TLSv1 TLSv1.2;
ssl_ciphers AES:HIGH:!ADH:!MD5;
ssl_prefer_server_ciphers on;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $2;
fastcgi_param HTTPS on;
fastcgi_intercept_errors on; # this was injected after some reading in the WWW
fastcgi_index index.php; # this was injected after some reading in the WWW
fastcgi_pass 127.0.0.1:9000;
}
# Optional: set long EXPIRES header on static assets
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don't log access to assets
access_log off;
}
}
这不是什么大事。但我现在搜索了几个小时,不知道在哪里搜索了。