我已将 Apache 配置为通过子域加载 KnowledgeTree (KT)。
# Part of http.conf file
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /usr/local/apache2/htdocs
</VirtualHost>
<VirtualHost *:80>
ServerName knowledgetree.example.com
DocumentRoot /usr/local/apache2/htdocs/knowledgetree
</VirtualHost>
当我进入knowledgetree.example.com
浏览器时,我应该看到KT的登录页面。
相反,我最终knowledgetree.example.com/knowledgetree/login.php
得到了以下消息:
未找到
该服务器上未找到所请求的 URL /knowledgetree/login.php。
鉴于我最终到达的 URL,错误消息是可以理解的,因为 htdocs/knowledgetree 文件夹中没有其他 knowledgetree 文件夹。
当我转到时example.com/knowledgetree
,一切都按预期工作。index.html 文件调用同一文件夹中的 control.php 文件。如果 control.php 文件发现需要登录,它会重定向到 login.php(也在同一文件夹中)。完美。
不幸的是,control.php 不知何故在“login.php”中添加了“knowledgetree/”作为前缀,并在请求 knowledgetree.example.com 时破坏了所有内容。
是否可以配置 Apache 来解决这个问题,或者是否需要更改 KT 的源?
答案1
答案2
在 knowledgetree 数据库的 config_settings 表中,将 rootUrl 的值更改为空字符串,然后重新启动 Apache。
更改 config.ini 中的值不会产生任何效果。它仅在安装期间使用。