2016-11-04 96 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錯誤,您很可能會在另一個未設置此目錄的虛擬主機中登錄。