WordPress 網站在Apache 中部署時使用.htaccess 文件指定重寫規則。
但是,有時當有其它程序時,比如:CWP自定義子域名文件夾目錄路徑編輯vhosts文件,需要排除301重定向例外文件夾目錄,繞過WordPress的偽靜態規則。
以下是一種可能的方法。
.htaccess 文件添加排除文件夾目錄規則
如果有將不帶www頂級域名自動跳轉訪問二級域名,需要在.htaccess 文件添加重定向排除文件夾目錄規則 ▼
RewriteCond %{REQUEST_URI} !^/img.chenweiliang.com/.*$ [NC]
將此代碼放在第一條規則之前,即可實現指定目錄排除功能 ▼
RewriteEngine On RewriteCond %{REQUEST_URI} !^/img.chenweiliang.com/.*$ [NC] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
- 設置生效後,訪問文件夾目錄
/img.chenweiliang.com/
之內的頁面,不會被WordPress 處理。
二級目錄/go/ 無法重定向問題
陳溈亮部落格使用WordPress外掛GTranslate付費版,確定GTranslate插件沒有使用/go/ 作為二級目錄和二級域名。
發現使用Pretty Link插件添加重定向陳溈亮部落格的Telegram頻道鏈接時:
https://www.chenweiliang.com/go/tgchannel
- (這是因為Pretty Link插件的跳轉鏈接,被.htaccess 文件裡的RewriteRule重定向規則覆蓋了)
竟然會自動跳轉到不存在的子域名:
http://go. chenweiliang.com/go/tgchannel
- (為避免出現死鏈接,所以在上方鏈接的go. 後面添加空格)
然而,在陳溈亮博客的.htaccess 文件裡搜索,並沒有找到包含/go/ 的RewriteRule。
當我嘗試刪除GTranslate config RewriteRule 之後,此鏈接居然成功重定向了:
https://www.chenweiliang.com/go/tgchannel
- 所以,我非常確定是GTranslate config RewriteRule 造成子目錄鏈接/go/ 的重定向錯誤。
如何排除/go/ 子目錄重定向?
若是需要設置排除多個不同的子目錄,可參考下方的重定向規則進行添加▼
RewriteCond %{REQUEST_URI} !^/?(directory1|directory2)($|/)
- 在
directory1|directory2|etc
中放置所需數量的目錄。 - 這應該是“如果REQUEST_URI 不以/directory1 或/directory2 開頭”。
它將匹配:
- /directory1/dasdas
- /directory1
- /directory1/
等等…
如何在RewriteRule 設置排除/go/ 跳轉鏈接?
只需將以下“排除/go/ 子目錄重定向”的規則,添加到GTranslate重定向規則的上面即可▼
# Exclude /go/ subdirectory redirection
RewriteCond %{REQUEST_URI} !^/?(go)($|/)
### BEGIN GTranslate config ###
RewriteRule ^([a-z]{2}|af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-CN|zh-TW|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu)/(.*)$ http://$1.chenweiliang.com/$2 [R=301,L,QSA]
RewriteRule ^(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-CN|zh-TW|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu)/(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-CN|zh-TW|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu)/(.*)$ /$1/$3 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-CN|zh-TW|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu)/(.*)$ /wp-content/plugins/gtranslate/url_addon/gtranslate.php?glang=$1&gurl=$2 [L,QSA]
RewriteRule ^(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-CN|zh-TW|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu)$ /$1/ [R=301,L]
### END GTranslate config ###
希望陳溈亮博客( https://www.chenweiliang.com/ ) 分享的《.htaccess排除301重定向繞過偽靜態例外文件夾目錄規則》,對您有幫助。
歡迎分享本文鏈接:https://www.chenweiliang.com/cwl-28236.html
歡迎加入陳溈亮博客的Telegram 頻道,獲取最新更新!
📚 這份指南蘊含價值巨大,🌟難逢的機遇,切勿錯失良機! ⏰⌛💨
喜歡就分享和按贊!
您的分享和按贊,是我們持續的動力!