我嘗試將除我自己的 IP 地址之外的所有訪問重定向到特定路徑/url(不是檔案或目錄,只是路由路徑),例如“example.com/my-path”到主頁。我在 .htaccess 檔案中嘗試了幾個代碼,但沒有任何效果。
我使用了這段代碼:
RewriteCond %{REMOTE_ADDR} != 1.2.3.4 (MY IP)
RewriteRule /my-path https://example.com
我哪里錯了?
uj5u.com熱心網友回復:
RewriteCond %{REMOTE_ADDR} != 1.2.3.4 (MY IP) RewriteRule /my-path https://example.com
這里有幾個錯誤:
!=您正在測驗的字串前后不應有空格。!=是CondPattern的一部分(第二個引數)。=是前綴運算子(使其成為字串匹配,而不是正則運算式)并且!是否定運算式的附加運算子。所以!=不是一個操作員,而是兩個粘在一起。RewriteRule模式(即/my-path)是匹配請求的 URL 路徑的正則運算式。但是請注意,在目錄背景關系(例如 ..htaccess)中,匹配的 URL 路徑不以斜杠開頭。這將隱式觸發 302(臨時)重定向。但是,您應該始終明確并包含該
R標志。對于外部重定向,您幾乎應該始終包含
L(last) 標志以防止進一步處理。
上面應該寫成這樣:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !=1.2.3.4
RewriteRule ^my-path$ https://example.com/ [R=302,L]
這將匹配請求的 URL /my-path,https://example.com/如果請求來自不是1.2.3.4.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/459235.html
