nginx 环境,nextcloud 如何去除 index.php 美化 url ?
发布于 作者:苏南大叔 来源:程序如此灵动~nextcloud
云盘系统,作为目前呼声最高的个人云盘开源软件,苏南大叔有安装了一个。确实效果非常不错,推荐大家下载安装nextcloud
。安装完成之后,在地址栏中,index.php
之类的字样,满天满地的都是。对于有洁癖的人来说,这是完全无法接受的事情。
那么,nextcloud
如何美化url
?如何去除url
中的index.php
字样?这个话题是苏南大叔在本篇文章中,要具体探讨的问题。
前提说明
在大家阅读本文的正文之前,苏南大叔先说明一下,关于nextcloud
去除index.php
的事情,您需要知道的事情。那就是:
nextcloud
官方虽然有描述这件事情,但是官方提供的做法是针对apache
的,并没有针对nginx
的相关描述。网络上流传的针对nginx
的描述,也是完全失效的。nextcloud
链接美化这事,远非想象中的那么简单。并不是像传统程序中,改个设置,然后加个.htaccess
或者换个nginx.conf
这么简单的事情。- 根据苏南大叔的观察,如果想要完全彻底的去除
index.php
字样。对于nextcloud
系统来说,似乎是有些天方夜谭的事情。所以,对于这件事情有着完美期待的童鞋,可以放弃了。 - 可以查看
nextcloud 13.0.5
的代码,代码里面写死的关于index.php
的字样,随处可见。所以,这件事情远非想象中的那么简单。那么我们就期待nextcloud
的后续更新,会彻底解决这个问题吧。
苏南大叔在本文中,描述的是:在nginx
环境下,nextcloud
链接美化的问题。本文的操作并不完美!修改了nextcloud
的源码!以下的几步,是苏南大叔总结的,nginx
版本的nextcloud
美化url,去除index.php
的步骤。
路由文件
/lib/private/URLGenerator.php
文件,getAbsoluteURL
函数,在合适的位置,增加如下语句:
$url=str_replace("/index.php/","/",$url);
本条目修改,可以保证系统函数输出的url里面,都没有index.php
字样。
nginx配置
nextcloud
的nginx
配置,其实非常的复杂。不过这里就仅仅展示和本文所讨论问题有关的条目。
- 本条目是把一切请求都转向到
index.php
的。这个比较好理解,各大php
框架的标配。
location / {
rewrite ^ /index.php$request_uri;
}
- 本条目是配合下面的js文件修改的,主要是修复分享功能链接中的
index.php
字样。
rewrite ^/index.php/s/(.*) /s/$1 permanent;
分享功能的js
文件
因为网盘的一个重大功能就是分享,那么分享功能的url
链接中,也出现了index.php
字样,经过苏南大叔的查看,除了上述nginx
必须修改外,还需要修改一些js
代码。因为代码里面,强制添加了index.php
字样。
core/js/js.js
文件,generateUrl
函数:
apache也许适用的配置方式
如果您的容器是apache
,网络上流传的修改方式是这样的。(苏南大叔是对其效果表示怀疑的)因为苏南大叔的服务器容器是nginx
,所以本条目并不适用。在翻阅了谷歌百度还有官方文档后,苏南大叔就彻底放弃了。自己动手,丰衣足食。
第一步,修改配置文件:config/config.php
。
'overwrite.cli.url' => '<http://yourdomain.com>',
'htaccess.RewriteBase' => '/',
注意修改<http://yourdomain.com>
字样为你自己的域名。(包括http
和https
)。
第二步,修改完配置文件后,还需要执行bash
命令行。请在当前项目的根目录下面执行下面的命令行。
sudo -u www php occ maintenance:update:htaccess
注意:
-u
后面的www
是你的用户名,请注意修改。occ
是个服务器端的cli
命令,其实是个php
文件。maintenance:update:htaccess
是个参数,代表了命令行具体要做的事情。
不过,上述操作完成了之后,就是在根目录下面生成了一个.htaccess
文件,所以,然并卵。nginx
并不试用。
官方的描述见这里:
总结
通过上述一系列操作之后,nextcloud
的url美化问题,得到了初步的解决。浏览器的地址栏里面也不会出现index.php
字样了,分享的文件链接中,也不会出现index.php
字样了。
但是本文的操作,遗留着一些问题:
- 一些后台设置链接还是存在
index.php
字样 - 升级
nextcloud
版本后,上述操作可能还是要继续重新修改。
更多nextclound
的更多秘密,请点击苏南大叔的经验分享文章吧。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
博主的方法很详细a1
666666666
博主的方法很详细
博主的方法介绍的很详细