Apache HTTP 伺服器 2.4 版
在多使用者系統中,可以使用 UserDir
指令允許每個使用者在其家目錄中擁有網站。訪問 URL http://example.com/~username/
的訪客將從使用者 "username
" 的家目錄中,由 UserDir
指令指定的子目錄中獲取內容。
請注意,預設情況下,不啟用對這些目錄的訪問權限。您可以在使用 UserDir
時,通過取消註釋預設設定檔 conf/httpd.conf
中的行來啟用訪問權限,並根據需要調整 httpd-userdir.conf
檔案,或者在主設定檔的 <Directory>
區塊中包含適當的指令。
#Include conf/extra/httpd-userdir.conf
UserDir
指令指定載入每個使用者內容的目錄。此指令可以採用幾種不同的形式。
如果給定的路徑不是以斜線開頭,則假設它是相對於指定使用者家目錄的目錄路徑。給定此設定
UserDir public_html
URL http://example.com/~rbowen/file.html
將被轉換為檔案路徑 /home/rbowen/public_html/file.html
如果給定的路徑以斜線開頭,則將使用該路徑加上指定的使用者名稱來建構目錄路徑。給定此設定
UserDir /var/html
URL http://example.com/~rbowen/file.html
將被轉換為檔案路徑 /var/html/rbowen/file.html
如果提供的路徑包含星號 (*),則會使用星號被使用者名稱取代的路徑。給定此設定
UserDir /var/www/*/docs
URL http://example.com/~rbowen/file.html
將被轉換為檔案路徑 /var/www/rbowen/docs/file.html
也可以設定多個目錄或目錄路徑。
UserDir public_html /var/html
對於 URL http://example.com/~rbowen/file.html
,Apache 將搜尋 ~rbowen
。如果找不到,Apache 將在 /var/html
中搜尋 rbowen
。如果找到,則上述 URL 將被轉換為檔案路徑 /var/html/rbowen/file.html
UserDir
指令可以用於將使用者目錄請求重新導向到外部 URL。
UserDir http://example.org/users/*/
以上範例會將 http://example.com/~bob/abc.html
的請求重新導向到 http://example.org/users/bob/abc.html
。
使用 UserDir 文件中顯示的語法,您可以限制允許哪些使用者使用此功能
UserDir disabled root jro fish
上述設定將為除 disabled
語句中列出的使用者以外的所有使用者啟用此功能。同樣,您可以使用如下設定停用除少數使用者以外的所有使用者的功能
UserDir disabled UserDir enabled rbowen krietz
有關其他範例,請參閱 UserDir
文件。
為了讓每個使用者都有自己的 cgi-bin 目錄,您可以使用 <Directory>
指令來啟用使用者家目錄特定子目錄的 cgi 功能。
<Directory "/home/*/public_html/cgi-bin/"> Options ExecCGI SetHandler cgi-script </Directory>
然後,假設 UserDir
設定為 public_html
,則可以從該目錄載入 cgi 程式 example.cgi
,如下所示
http://example.com/~rbowen/cgi-bin/example.cgi
如果您希望允許使用者在其網頁空間中修改伺服器設定,他們將需要使用 .htaccess
檔案來進行這些更改。請確保您已將 AllowOverride
設定為允許使用者修改的指令所需的足夠值。有關其工作原理的更多詳細資訊,請參閱 .htaccess 教學。