Dot-Htaccess
Apache 不允許 .htaccess
我將 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。
試試這個:
- 配置 Apache mod_rewrite
a2enmod rewrite
- 將以下程式碼添加到
/etc/apache2/sites-available/default
AllowOverride All
- 重啟阿帕奇
/etc/init.d/apache2 restart