.htaccess排除301重定向繞過偽靜態例外文件夾目錄規則

WordPress 網站在Apache 中部署時使用.htaccess 文件指定重寫規則。

但是,有時當有其它程序時,比如:CWP自定義子域名文件夾目錄路徑編輯vhosts文件,需要排除301重定向例外文件夾目錄,繞過WordPress的偽靜態規則。

以下是一種可能的方法。

.htaccess 文件添加排除文件夾目錄規則 

.htaccess排除301重定向繞過偽靜態例外文件夾目錄規則

如果有將不帶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 頻道,獲取最新更新!

🔔 率先在頻道置頂目錄獲取寶貴的《ChatGPT 內容行銷AI 工具使用指南》! 🌟
📚 這份指南蘊含價值巨大,🌟難逢的機遇,切勿錯失良機! ⏰⌛💨
喜歡就分享和按贊!
您的分享和按贊,是我們持續的動力!

 

發表評論

您的電子郵箱地址不會被公開。 必填項已用 * 標註

滾動到頂部