在 Debian 中,我试图将主站点子域上的 wiki 站点移动到站点路径:wiki.mysite.com
to mysite.com/wiki
。
我有两个dns记录:wiki.mysite.com
并且mysite.com
在apache下还有两个conf文件:
wiki.mysite.com.conf
mysite.com.conf
并有网站目录:
/var/www/html/www.mysite.com
/var/www/html/www.wiki.mysite.com
一切都运转良好。我现在需要将 wiki 站点移到主站点的路径下,www.mysite.com/wiki...
我已尝试对 进行以下更新mysite.com.conf
,但重新启动 apache 后,我在尝试时收到“未找到:在此服务器上找不到请求的 URL”访问mysite.com/wiki
(但mysite.com
工作正常)。我帮。做什么? :
<VirtualHost *:80>
Server Admin webmaster@localhost
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /var/www/html/www.mysite.com
<Directory /var/www/html/www.mysite.com/>
AllowOverride All
</Directory>
<VirtualHost>
<VirtualHost *:80>
Server Admin webmaster@localhost
ServerName mysite.com/wiki
ServerAlias www.mysite.com/wiki
DocumentRoot /var/www/html/www.wiki.mysite.com
<Directory /var/www/html/www.wiki.mysite.com/>
AllowOverride All
</Directory>
<VirtualHost>
我只添加了第二个虚拟主机,第一个虚拟主机最初是在我将该站点设置为子域站点时存在的。重复一遍,第一个虚拟主机仍然有效。
答案1
您正在寻找的是alias
条目。别名将为 URL 的给定子路径指定备用位置。您不需要为此使用多个虚拟主机。
这是 apache 文档alias
。以下信息来自那里:
该模块中包含的指令允许在请求到达服务器时操作和控制 URL。 Alias 和 ScriptAlias 指令用于在 URL 和文件系统路径之间进行映射。这允许不直接位于 DocumentRoot 下的内容作为 Web 文档树的一部分。
请记住,如果 www.wiki.mysite.com 中的网站文档引用了绝对 URL,例如指向/index.php
.这会去mysite.com/index.php
,不会mysite.com/wiki/index.php
。
<VirtualHost *:80>
Server Admin webmaster@localhost
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /var/www/html/www.mysite.com
Alias /wiki /var/www/html/www.wiki.mysite.com
<Directory /var/www/html/www.mysite.com/>
AllowOverride All
</Directory>
<Directory /var/www/html/www.wiki.mysite.com/>
AllowOverride All
</Directory>
</VirtualHost>