Dot-Htaccess

Apache 不允許 .htaccess

  • September 3, 2020

我將 Ubuntu 升級到 14.04 LTS,將 Apache 升級到 2.4。當伺服器第一次啟動備份時,我在訪問頁面時遇到 403 錯誤。這是我了解到我需要更改為Require all granted. 我以為我一切正常,直到我意識到.htaccess沒有被載入到任何地方。我認為這也需要更改,但 Apache 文件說從我能找到的情況來看很好。以下是我Directory目前的規則。

VirtualDocumentRoot /var/hosts/%-2.0.%-1.0/%-3+/public_html
<DirectoryMatch "^/var/hosts/[^/]+/[^/]+/public_html">
   Options FollowSymLinks
   AllowOverride All
   Require all granted
</DirectoryMatch>

我的第一個想法是正則表達式錯誤,並且沒有載入任何規則。所以我評論了Require all granted並看到它阻止了網站再次載入。所以我知道它正在載入它們。我必須執行以下操作才能讓它們工作。

<Directory /var/hosts/>
   Options Indexes FollowSymLinks
   AllowOverride All
   Require all granted
</Directory>

我可以留下這個嗎?任何想法為什麼它不起作用?

我解決了我的問題。

Apache 2.4 似乎[^/]+在匹配目錄方面存在問題。我能夠讓它工作*。它匹配除/.

我在嘗試保護dev. 我看到指定域而不是使用 REGEX 可以在 VirtualHost 中工作。

在查看了Directory 文件後,我了解到*並試了一下。還了解到DirectoryMatch不影響子目錄並且Directory允許 REGEX。

試試這個:

  1. 配置 Apache mod_rewrite
a2enmod rewrite
  1. 將以下程式碼添加到/etc/apache2/sites-available/default
AllowOverride All 
  1. 重啟阿帕奇
/etc/init.d/apache2 restart

引用自:https://serverfault.com/questions/659168