我了解到 httpd.conf 在 Apache 的 /etc/apache2 中不再可用。解决方法是创建一个 httpd.conf 文件,详细信息如下这里并将我的 apache2.conf 指向它。
但浏览 apache2.conf 时,我注意到了这一点:
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
这是否意味着我可以安全地将我的 .htaccess 配置添加到 /etc/apache2/sites-enabled/mysite.com.conf 的 .conf 文件中?
将服务器配置添加到 .htaccess 可能会降低速度,尤其是当你添加一堆配置时,如下所示这里,并且我想确保将它们添加到最谨慎的位置。
答案1
您应该在 中为您的站点创建一个 .conf 文件,/etc/apache2/conf-available/
并将所有您不想要的服务器设置放入其中.htaccess
。然后使用 启用该配置a2enconf
(这将在 中创建一个符号链接) /etc/apache2/sites-enabled
。
了解/usr/share/doc/apache2/README.Debian.gz
有关如何在 Debian 及其衍生产品(如 Ubuntu)中处理 Apache 配置的更多信息。
答案2
这取决于文件中使用的指令.htaccess
。
你不能简单地复制(或包括)相同的指令.htaccess
,并在服务器或者虚拟主机上下文,这是这里建议的。.htaccess
文件在目录上下文,因此您可以将它们逐字复制到<Directory>
vHost 或服务器配置内的相应容器中。
这里值得注意的指令是 mod_rewrite - 在服务器(或者虚拟主机)上下文 vs .htaccess
(或目录) 语境。
例如,如果.htaccess
文件位于,/var/www/user/public_html/.htaccess
那么您可以在 vHost 容器中使用以下内容:
<Directory /var/www/user/public_html>
# Disable .htaccess overrides
AllowOverride None
# .htaccess directives go here...
# :
</Directory>
但是,你可能不想这样做。最好修改指令,使它们在虚拟主机上下文。除非你完全禁用.htaccess
覆盖(如上所述,并且AllowOverride None
可能),否则文件系统路径上的AllowOverrideList
任何文件都将.htaccess
覆盖<Directory>
vHost 中的容器。
添加服务器配置可能
.htaccess
会减慢速度
请注意,为了获得(边际)性能优势,您需要完全禁用.htaccess
服务器配置中的覆盖(如上所述)。仅仅删除文件.htaccess
是不够的,因为服务器仍会在请求的文件系统路径上的每个目录中搜索它们。