重定向到 Apache 虚拟主机文件中的子文件夹
Posted
技术标签:
【中文标题】重定向到 Apache 虚拟主机文件中的子文件夹【英文标题】:Redirect to a subfolder in Apache virtual host file 【发布时间】:2013-10-04 00:33:25 【问题描述】:我在运行 Ubuntu Server 12.04 的网络服务器上安装了 Joomla。 Joomla 文件夹位于 /var/www/cms/。
我在 /etc/apache2/sites-enabled/default 的 vhost 文件有以下内容:
<VirtualHost *:80>
ServerName domain.com/
Redirect permanent / https://domain.com/
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName domain.com:443
DocumentRoot /var/www/cms
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/cms>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
(...)
</VirtualHost>
目前,对 domain.com 的所有请求以及在此之后输入的任何内容(如 domain.com/example)都由 Joomla 定向和处理,Joomla 要么重定向到正确的页面,要么返回自定义 404 错误。这一切都有效。
现在,我想在 Joomla 处理之前过滤所有转到 domain.com/subfolder 的请求,并将它们重定向到 /var/www/subfolder(而不是我在 /var/www/cms 的根文件夹/)。
我相信 /etc/apache2/sites-enabled/default 中的文件(如上所示)是定义此类重定向的正确位置,但是我无法弄清楚在什么位置以及如何实现这一点。
【问题讨论】:
您是否尝试过使用别名? @MasterAM 这就是我所缺少的。谢谢! Alias /subfolder /var/www/subfolder.htaccess
:RedirectMatch ^/foo/$ /foo/bar/
或RedirectMatch ^/foo/$ /bar/baz/
。另请参阅How to get apache2 to redirect to a subdirectory。
【参考方案1】:
您应该添加到您的配置中:
Alias /subfolder /var/www/subfolder
<Directory /var/www/subfolder>
Order allow,deny
allow from all
</Directory>
并根据您的需要调整“目录”之间的配置。
查看Apache documentation了解更多信息。
【讨论】:
以上是关于重定向到 Apache 虚拟主机文件中的子文件夹的主要内容,如果未能解决你的问题,请参考以下文章
apache 将 http 重定向到 https 而不使用 www