是否有 .htacces 方法來阻止所有以完全開頭的請求/index.php?action=?
我想通了:
RewriteCond %{QUERY_STRING} \baction=\b [NC]
RewriteRule ^ - [F]
但是我如何把這個部分/index.php?放在那個模式的前面。我嘗試了很多,但沒有奏效,只有這部分模式還會在 URL 的其他位置阻止 &action= 引數
希望你能幫忙。非常感謝,尼科
uj5u.com熱心網友回復:
您可以使用THE_REQUEST變數來匹配完整的 URL 并像這樣阻止它:
RewriteCond %{THE_REQUEST} /index\.php\?action= [NC]
RewriteRule ^ - [F]
uj5u.com熱心網友回復:
RewriteCond %{QUERY_STRING} \baction=\b [NC] RewriteRule ^ - [F]但是如何放置 /index.php 部分?在那個圖案面前。
該RewriteRule 模式(即^在您的示例中)與 URL 的 URL 路徑部分匹配(減去斜杠前綴)。所以,你可以這樣做:
RewriteCond %{QUERY_STRING} ^action= [NC]
RewriteRule ^index\.php$ - [NC,F]
這匹配任何開始的請求/index.php?action=(不區分大小寫)。
您最初擁有的正則運算式(即 . ^)對所有內容都是成功的,因此將匹配任何以/<anything>?action=.
這種方法與檢查THE_REQUEST(如@anubhava 的回答)之間的區別在于,這也會阻止已在內部重寫為的請求/index.php?action=,而THE_REQUEST只會阻止來自客戶端的直接請求。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/456594.html
