跳到主要內容

發表文章

目前顯示的是 11月, 2025的文章

雲主機設定 VirtualHost 方法(將 www 與 IP 自動 301 轉向單一網址)— SEO 最佳化

完成雲主機 LAMP 架設後,下一步就是把 DNS 指向新空間。但此時你可能會遇到一個常見問題: www.website.com 可以進入網站 website.com 也能進入網站 伺服器 IP 也能直接打開網站 等於一個網站有三個入口。 這會造成: 搜尋引擎收錄混亂(www / non-www / IP 三份內容) SEO 分數被分散 資料表的網址寫入不一致(有 www、有 IP、沒 www 都混在一起) 因此,我們需要建立 VirtualHost 來統一入口,讓所有訪問都自動轉向單一網址(正規化 Domain),方法如下: 1、建立 VirtualHost 設定檔 sudo nano /etc/apache2/sites-available/default_host.conf 貼上以下內容(http): <VirtualHost *:80>     ServerName website.com     ServerAlias www.website.com     RewriteEngine On     # 不管是 website.com、www.website.com、或 IP / 其它 Host     # 一律丟到 https://website.com     RewriteRule ^/(.*)$ https://website.com/$1 [L,R=301] </VirtualHost> 請把 website.com 改成你自己的網址 。 如果有啟用SSL功能(https),請再增加443部分 <VirtualHost *:443>     ServerName website.com     ServerAlias www.website.com     RewriteEngine On     DocumentRoot /var/www/html     # 如果有資料夾要轉首頁一併處理     RewriteCond %{REQUEST_URI} ^/ folder (/...

使用雲主機Xoops資料夾權限設定方法(安全)

由於早期網站大多租用虛擬主機,主機商(虛擬主機)不開放 owner 權限設定。FTP 上傳的檔案都是你自己的 user,但 Apache 執行的身分是 www-data(或 nobody)。因此 Apache 無法寫入 FTP 上傳的目錄。能讓 PHP 寫入資料的唯一方法,就是把資料夾權限設為 777(完全開放) 。 但現在已經 2025 年,這個方法在現代 雲主機 = 直接開大門請人入侵、請人來挖礦 。 只要輸入像下面這種命令: curl -T shell.php http://website.com.tw/uploads/ 把一句話木馬丟進去。或者: curl -X PUT -d "<xml>亂碼" http://website.com.tw/uploads/ 整個 uploads 直接被毀。 好在時代進步,多數虛擬主機資料夾,只要設成 755 就能讓 PHP 正常存取(因為 suPHP 或 CageFS) 。至於雲主機或 VPS,則應該使用以下方法取代 777: 設定資料夾權限(替代777方法) chmod -R 775 /var/www/html/uploads chown -R www-data:www-data /var/www/html/uploads 設定檔案權限(替代777方法) chown www-data:www-data /var/www/html/xsitemap.xml chmod 664 /var/www/html/xsitemap.xml 這是 XOOPS 上雲後最安全 & 最正確的權限組合。 Apache 能寫、你能寫、非權限者不能寫 → 完美安全模型。 XOOPS 正確安全權限(建議清單) 目錄   權限  owner uploads   775  www-data xoops_data/caches   770  www-data xoops_data/configs   770   www-data xoops_data/data   770  www-data xoops_data/protector      770  www-data xoops_l...

Ubuntu主機ssh指定固定ip連線方法(防止掃描及暴力破解)

除非是內網段私有雲,不然一般 VPS 或雲主機的預設模式 ssh 是完全開放的,Port 22 對 0.0.0.0/0 全世界開放,只要知道 IP + 密碼即可登入,如果不是使用金鑰方式連線,非常建議建立 UFW 防火牆規則,將 SSH 登入限制為固定 IP 白名單,否則 SSH 端口可能每分鐘被測試 50~100 次。 這些都是正常的掃描行為: Failed password for root from 152.xx.xx.xx Failed password for root from 103.xx.xx.xx Invalid user ubuntu from 185.xx.xx.xx LOG 膨脹事小,如果密碼真的被猜出來,整台雲主機等於送給駭客當挖礦機玩具。 因此必須建立 SSH 白名單,方法如下: 步驟 1:安裝 UFW 防火牆(Ubuntu 標準 L4 防護) apt update apt install ufw -y 步驟 2:只允許你家 / 公司電腦的固定 IP 連線 SSH ( 紅色部分請改為您的固定 IP) ufw allow from 125.227.xxx.xxx to any port 22 步驟 3:封鎖全世界的 SSH(IPv4/IPv6 全封) ufw deny 22/tcp ufw deny 22 步驟 4:開放網站必要 Port ufw allow 80 ufw allow 443 步驟 5:檢查是否存在錯誤規則(如有 → 必刪) ufw status numbered 若有出現以下規則必須刪除,否則 SSH 白名單無效: 1、全世界允許 SSH(危險) [ 1] 22/tcp ALLOW IN Anywhere 刪除 → ufw delete 1 2、IPv6 全世界允許 SSH [ 6] 22/tcp (v6) ALLOW IN Anywhere (v6) 刪除 → ufw delete 6 步驟 6:啟動防火牆(開始生效) ufw enable 提示: Command may disrupt existing ssh connections Proceed with operation (y|n)? 輸入:y 成功後顯示: Firewall is active and enabled on system startup 完成...