發佈日期:
如何在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/ (不容許瀏覽)
發佈留言