使用别名时的 Apache VirtualHost 混淆
Posted
技术标签:
【中文标题】使用别名时的 Apache VirtualHost 混淆【英文标题】:Apache VirtualHost confusion when using alias 【发布时间】:2018-05-22 15:17:54 【问题描述】:所以我有一个如下所示的设置:
www.mydomain.com - 运行复杂的多站点 Wordpress 安装 www.mydomain.com/othersite - 由于各种原因,这需要运行完全独立的 Wordpress 安装,但由于历史原因,URL 必须采用这种格式。
我希望 WP 的“其他站点”安装不必位于主多站点安装的目录中,例如 /var/www/main-多站点 /var/www/othersite 而不是 /var/www/main-multisite/othersite
我的理解是我无法为其他站点创建单独的虚拟主机,所以我在主虚拟主机中创建了一个别名:
Alias /othersite /var/www/othersite
但是,这样做时,/var/www/othersite 中的 .htaccess 文件似乎被忽略了 - 我首先注意到这一点,因为 Wordpress 中的永久链接不起作用。我尝试将其他指令添加到 .htaccess 中,但没有任何作用……所以我将乱码放入 .htaccess 以尝试引发错误……但这并没有发生。所以这证实了我认为 .htaccess 被忽略了。
但是,如果我从虚拟主机中删除别名,然后移动一些东西,我们就有了
/var/www/main-multisite/other
一切正常,文件夹中的 .htaccess 也正常!但这不是我想要的。
谁能帮我解释一下我在这里遗漏了什么?
提前致谢。
【问题讨论】:
您是否在 apache 配置中添加了AllowOverride
设置为 all?Order allow,deny
和Allow from all
【参考方案1】:
设置Alias
后,您应该设置要应用于目录的指令组。您应该在 apache 配置中添加 <Directory>
指令。默认配置 AllowOverride None
将完全忽略目录上的 .htaccess。您还应该检查documentation 关于<Directory>
指令的信息。
<Directory "/var/www/othersite">
Options FollowSymLinks Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
【讨论】:
以上是关于使用别名时的 Apache VirtualHost 混淆的主要内容,如果未能解决你的问题,请参考以下文章