IT Knowledge Base

~ Without sacrifice, there can be no victory ~

發佈日期:

分類:

,

如何在Ubuntu Desktop (9.10, 10.04)下‧為apache在外面存取時‧加上密碼保護‧但在內聯網存取時‧卻不需要登入

在這裡,每次也有那麼多奇怪的要求,之前已做好了apache用戶登入要求。今次要求卻是,在內聯網存取時,不需要任何登入程序,但如果是在公司外面存取時,卻要用戶登入。

01. 首先當然是安裝好apache於系統內。

02. 在系統內,建立一虛擬連結,指到apache網頁資料夾上,即DocumentRoot指定位置。

cd /home/user
sudo ln -s /var/www www

03. 編輯/etc/apache2/sites-available/default檔案。

sudo gedit /etc/apache2/sites-available/default
將:
…
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
…
更改為:
…
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig
AuthName "You reach to our authentication area..."
AuthType Basic
AuthUserFile /etc/apache2/passwd
require valid-user
Order allow,deny
allow from all
</Directory>
…

04. 再在/etc/apache2/sites-available/default檔案內,加入以下內容。此內容為建立一個虛擬目錄,名稱為internal。不需要用戶登入,及只容許內聯網用戶,IP地址是192.168.0.x 連接。

sudo gedit /etc/apache2/sites-available/default
Alias /internal/ "/home/user/www/"
<Directory "/home/user/www/">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from 192.168.0
</Directory>

05. 到/etc/apache2資料夾下,建立passwd密碼檔案,其中[username]為登入apache時用戶名稱,並不一定是Ubuntu用戶。

cd /etc/apache2
sudo htpasswd -c passwd [username]

06. 如需新增其他用戶,可用以下命令,其中[username]為登入apache時用戶名稱,並不一定是Ubuntu用戶。

sudo htpasswd passwd [username]

07. 重新載入apache服務。

sudo /etc/init.d/apache2 force-reload
sudo /etc/init.d/apache2 restart

08. 使用以下網址,進入網站。
http://[內聯網IP地址]/internal/ (不需要登入)
http://[內聯網IP地址]/ (需要登入)
http://[固定IP地址]/ (需要登入)
http://[固定IP地址]/internal/ (不容許瀏覽)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *