2016-11-04 91 views
0

我试图在httpd.conf中包含.htaccess以获得更好的性能。尝试在httpd.conf中包含htaccess的内容

我按照自述文件here中的说明来改善网站性能。我把.htaccess放在我的网站根文件夹C:/xampp/htdocs/apps然后在httpd.conf我已经得到了下面的代码。然后我重新启动apache。问题是我不认为.htaccess规则正在应用

这是包括.htaccess的正确方法,我是否将它包括在正确的目录中?

<Directory "C:/xampp/htdocs"> 

    Options Indexes FollowSymLinks Includes ExecCGI 
    AllowOverride All 
    Require all granted 

    Include C:\xampp\htdocs\apps\.htaccess 

</Directory> 
+0

.htaccess和httpd.conf的语法并不完全相同,因此请确保您的include使用的是httpd.conf的正确语法,您可能应该将“规则”放在httpd.conf的相关部分中,而不是一个包含。看到http://stackoverflow.com/questions/17140605/apache-htacess-rewrite-can-i-move-this-into-httpd-conf –

回答

-1
AllowOverride All 

应该已经告诉Apache让.htaccess覆盖所有设置。我认为没有必要手动包含它。

+0

其实,只是我们中有这么几个人可以访问httpd.conf,这样做这一切都通过.htaccess是很常见的。是的,有时需要将指令从.htaccess移出到httpd.conf中,因为它会提高性能。必须为每个请求读取和处理.htaccess,而大量的httpd.conf已经加载到服务器RAM –

+0

中。但是AllowOverride All不应该也在那里。 – Tommos

0

如果您想要在Include指令中手动将目录内容“包含”到目录上下文中,请将AllowOverride设置为none,否则应用相同的配置两次,一次在目录中,另一次通过AllowOverride方法应用。

如果你只是想有一个.htaccess文件(不会因为你似乎有权访问主配置而弄清楚原因),那么AllowOverride all就足够了。

如果你只是想为.htaccess并确保它被应用你可以:

<Directory "C:/xampp/htdocs"> 
    Options Indexes FollowSymLinks Includes ExecCGI 
    AllowOverride All 
    Require all granted 
</Directory> 

并在此目录中的.htaccess文件添加垃圾文本,如果正在读它,Apache会如果不是500,则会出现500错误,您很可能会在另一个未设置此目录的虚拟主机中登录。