我在我的樹莓派上安裝了 nextcloud。我想在我的本地網路中使用它來傳輸檔案,并在任何地方使用它來傳輸聯系人和日歷。
我的 nextcloud 位于/var/www/html/nextcloud. 我還創建了一個檔案/etc/apache2/sites-available/nextcloud.conf來啟用虛擬主機。基本上:
<VirtualHost *:80>
DocumentRoot /var/www/html/nextcloud/
ServerName nextcloud.example.com
<Directory /var/www/html/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
</VirtualHost>
通過以下鏈接可以訪問 nextcloud:
192.168.2.100/nextcloudnextcloud.example.comexample.com/nextcloud
我的問題:有沒有辦法禁止通過訪問example.com/nextcloud?
我試圖將deny, allow條目添加到/var/www/html/nextcloud/.htaccess. 但是要么我阻止太多,要么它不起作用。幫助表示贊賞。
uj5u.com熱心網友回復:
完全可以訪問的事實example.com/nextcloud是因為您將子域指向主域檔案根目錄之外的子目錄(如主域的 VirtualHost 中所定義)。如果子域是一個完全獨立的物體,那么它最好指向主域檔案根之外的區域。
我試圖添加拒絕,允許進入
/var/www/html/nextcloud/.htaccess
如果您想阻止它.htaccess(而不是主域的 vHost 配置),那么您需要檢查請求的Host標頭。在這樣做時,我認為最好阻止規范主機名以外的任何內容,即。其他任何東西nextcloud.example.com(因此它也會阻止通過 IP 地址的請求)。而不是檢查要阻止的主機名。您可以使用 mod_rewrite 執行此操作,例如:
# /var/www/html/nextcloud/.htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} !^nextcloud\.example\.com$
RewriteRule ^ - [F]
Host對于所請求的標頭不是(如!前綴所示)的任何請求,上述內容都會以“403 Forbidden”回應nextcloud.example.com。
您還可以在主域的 vHost 容器(而不是子域)中阻止此子目錄。所以它只適用于對example.com. 例如:
<Directory /var/www/html/nextcloud>
Require all denied
</Directory>
請注意Order,Allow和Deny是 A??pache 2.2 指令,以前在 Apache 2.4 上已棄用。您應該Require在 Apache 2.4 上使用 (mod_authz_core)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/514349.html
