Php 有一个“/?i=2“;在我的wordpress网站索引url中

Php 有一个“/?i=2“;在我的wordpress网站索引url中,php,wordpress,.htaccess,url-rewriting,Php,Wordpress,.htaccess,Url Rewriting,我最近抓到了一个主机,首先在我的htdocs根目录中有一个index2.html,它是默认索引,直到我在该根目录中安装了wordpress,我才删除它。然后wordpress自动生成一个httaccess文件,其中包含以下代码,这是正常的: # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQU

我最近抓到了一个主机,首先在我的htdocs根目录中有一个index2.html,它是默认索引,直到我在该根目录中安装了wordpress,我才删除它。然后wordpress自动生成一个httaccess文件,其中包含以下代码,这是正常的:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
现在我意识到在我的通用url中有时会出现/?I=1或/?I=2,例如wordpresssite.com/?I=2 这是一个问题,因为我使用的是一些广告单元系统,我将我的网站url提供给了该系统,但似乎广告系统机器人在某个时候重定向到“wordpresswebsite.com/?I=2”url,并且它与我之前输入的url(wordpresswebsite.com)不匹配,因此无法工作

现在我删除了index2.html,但问题仍然存在。 这个?i=1或2是关于PHP GET参数的,但是这个参数将如何显示。

我在reddit上发现了类似的问题,结论是:

很可能在vhost级别有一些规则

----是的,它来自主机,他们说他们不能禁用它,因为它可以保护我免受机器人攻击


如果您使用的是Apache,则必须首先启用
mod_rewrite

sudo a2enmod mod_rewrite
然后重新启动或重新加载服务器以进行新配置:

sudo service apache2 restart

(如果没有shell访问权限,请尝试为此找到一些奇特的控制面板选项)

对于那些有兴趣删除主要由免费主机提供商安装的/?i=1的人,这里有一个提示

在网站的根目录中编辑并上载.htaccess文件

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

?i=1或2或3是为了保护您的网站免受机器人攻击。请尝试将cloudflare用于您的网站或使用.htaccess代码删除?准材料。请注意,使用任何代码删除?i=1将删除所有?参数。

我也面临着同样的问题,如果您找到任何解决方案,请更新…@jatinvermaI发现这是由于主机提供商的配置防止了机器人程序的风险。。。最好的解决方案是将您的主机或服务器计划更改为专用VPS或服务器,以便自己获取服务器的所有配置