如何禁用URL中的“?i=1”参数

问题描述 投票:0回答:3

我的网站在 InfinityFree 托管上运行,它会在每个 URL 上添加

?i=1
后缀(如
www.mysite.com/?i=1
、或
/?i=2
、或
/?i=3
),以保护网站免受恶意机器人攻击,正如他们所说。

但是,当然,我不喜欢这些后缀并想禁用它们(只需将

www.mysite.com/anypage/?i=1

 重定向到 
www.mysite.com/anypage/
)。请注意,我不想禁用所有 GET 参数,而只想禁用这些 
i=1
i=2
i=3

我认为可以使用

.htaccess

来完成。有人可以帮我吗?

.htaccess url-rewriting get
3个回答
19
投票
嗯,我已经使用

this问题中的代码解决了这个问题。 我刚刚在 .htaccess 中添加了这段代码,现在它将所有带有“i”的 URL 重定向到不带“i”的 URL。

RewriteEngine On RewriteCond %{QUERY_STRING} ^(.*)i=[^&]+(.*)$ [NC] RewriteRule ^(.*)$ /$1?%1%2 [R=301,L]
    

1
投票
您需要先打开RewriteEngine。

RewriteEngine On RewriteCond %{QUERY_STRING} ^(.*)i=[^&]+(.*)$ [NC] RewriteRule ^(.*)$ /$1?%1%2 [R=301,L]
    

0
投票
无法编辑已接受的答案。

添加了正则表达式“&?”避免

空键/值:

RewriteEngine On RewriteCond %{QUERY_STRING} ^(.*)i=[^&]+&?(.*)$ [NC] RewriteRule ^(.*)$ /$1?%1%2 [R=301,L]
    
© www.soinside.com 2019 - 2024. All rights reserved.