重定向(301 Redirect)整個網站(網域) 到另一個新的網站(網域)

#重定向(301 Redirect)整個網站
Redirect 301 / https://newsite.com/

如果上面的無效 可以用以下

#重定向(301 Redirect)整個網站
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-url\.com$ [NC]
RewriteRule ^(.*)$ https://new-url.com.tw$1 [L,R=301]

參考網站

補一個php的寫法

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://example.com");
?>

下面兩個的參考資料

重定向到非 www

#重定向到非 www
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^www\.domain\.tld [NC]
  RewriteRule ^(.*)$ http://domain.tld/$1 [L,R=301]
</IfModule>

重定向到 www

#重定向到 www
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^domain\.tld [NC]
  RewriteRule ^(.*)$ http://www.domain.tld/$1 [L,R=301]
</IfModule>

WordPress 上傳文件夾 禁用文件執行

Uploads文件夾是存儲所有圖像和其他媒體的位置,因此它必須可寫。

#WordPress 上傳文件夾 禁用文件執行
Options -ExecCGI
#Block javascript except for visualcomposer (VC) plugin
RewriteEngine On
RewriteCond %{REQUEST_URI} !^.*wp-content/uploads/visualcomposer-assets/.*\.js$
RewriteRule ^(.*\.js)$ - [F,L]

參考網站


防止駭客利用xmlrpc.php進行暴力破解的攻擊

如果網站CPU持續滿載 100%

有可能攻擊者利用xmlrpc.php提供的接口嘗試猜解用戶的密碼,做頻繁的嘗試。

為了防止駭客利用xmlrpc.php進行暴力破解的攻擊

有一下兩種方式調整

可以利用以下代碼在.htaccess重寫規則

把xmlrpc.php的用戶導向其他地方

#把xmlrpc.php的用戶導向其他地方
RewriteRule ^xmlrpc\.php$ "http\:\/\/0\/.0\.0\.0\/" [R=301,L]

把 xmlrpc.php檔案直接拒絕所有的存取

#xmlrpc.php檔案直接拒絕所有的存取
<files xmlrpc.php>
order Deny,Allow
Deny from all
</files>

參考網站


啟用Gzip文字壓縮

#啟動gzip文字壓縮
<IfModule mod_deflate.c>
# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml

# Remove browser bugs (only needed for really old browsers)
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</IfModule>

強制https (強制SSL連線)

#強制https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

保護.htaccess

以下的程式碼將讓黑客無法存取你的 .htaccess 檔

#保護.htaccess
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

保護wp-config.php

禁止任何人訪問wp-config.php

#保護wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>

保護 wp-content 資料夾

防止駭客上傳垃圾檔案進入網站

如果要用這個方法保護資料夾,必須額外建立一個.hatccess檔案

並上傳到 example.com.tw/wp-content/ 內

這麼做只會允許 XML、CSS、JPG、JPEG、PNG、GIF 和 JavaScript 被上傳到媒體資料夾,其餘的檔案類型將被拒絕。

#保護 wp-content 資料夾
Order deny,allow
Deny from all
<Files ~ ".(xml|css|jpe?g|png|gif|js)$">
Allow from all
</Files>

保護 include-only 檔案

某些檔案是絕不用讓使用者存取的。你可以加入以下程式碼,來阻擋使用者存取這些檔案

#保護include-only檔案
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

保護 wp-admin 資料夾 限制特定IP存取

此方式也是要額外創建一個.htacceess檔案

並上傳至 example.com.tw/wp-admin/ 內

將ip地址改為自己的ip即可

如果有多個ip可以用逗號 ( , ) 分隔

#Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 12.34.56.78
</Limit>

禁止瀏覽目錄

#禁止瀏覽目錄
Options All -Indexes

禁止直接連結圖片

直接連結的意思是某人直接取用你的圖片鏈結,然後將它分享到其他網頁上。這常發生在討論區,但大多數的網站擁有者仍然會這麼做。直接連結可能對你的網站帶來負面影響,包括使你的網站變慢,也會讓你的頻寬費用增加。

你可以禁止除了你的網站外的網站直接連結圖片,將以下程式碼加入即可。請確認將以下網址更改為你的網址。

當其他人試圖從其他網址瀏覽你的圖片時,他們將會看到禁止圖片,而這圖片可以變更為任何你想要的圖(在上面的最後一行設定圖片路徑)。

#禁止直接連結圖片
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourotherwebsite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://i.imgur.com/g7ptdBB.png [NC,R,L]

建立帳號密碼讓網站變成私人網站

參考文章

步驟 1:建立 .htpasswd 檔

請先開啟文字編輯器並且新增一行帳號密碼,使用冒號(:)分隔。密碼需要使用加密格式來讓 htaccess 讀取。在 Linux 系統中您可以使用 apache2-utils 中的 htpasswd 工具來產生。您可以使用一些線上工具來協助您產生。

以下為範例 帳號:密碼

username:Tq/W4Q1H7uL4Q

步驟 2:建立 .htaccess 檔

接下來編輯 .htaccess 檔案

新增以下內容

#密碼保護網站
AuthUserFile www.mysite.com/public_html/.htpasswd
AuthName "密碼保護區域"
AuthType Basic

<limit GET POST>
require valid-user
</limit>

請編輯 AuthUserFile 該行內容,確定有指向您 .htpasswd 檔案的絕對路徑。

您可以修改 AuthName 來變更登入提示。

接者請上傳此檔案到您的管控的目錄中。.htaccess 檔將會適用於該目錄與其底下的子目錄。

例如您想要保護整個網站,則請上傳到:

www.mysite.com/public_html

或是您想要保護某個特定的目錄之內的內容 (包含其下的子目錄):

www.mysite.com/public_html/wp-content

另一個方法:安裝外掛

可以使用此外掛:WP Basic Authentication 輕鬆保護網站

最後修改日期: 2023 年 2 月 2 日

作者