我最近抓住了一个主机,首先在我的htdocs root中有一个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
现在我意识到有时在我的常规网址中有/?i = 1或/?i = 2,例如,wordpresssite.com /?i = 2 这是一个问题,因为我正在使用一些广告单元系统并且我将我的网站网址提供给系统,但似乎广告系统很少有时间重定向到“wordpresswebsite.com/?i=2”网址并且它没有与我之前输入的网址匹配(wordpresswebsite.com)所以它不会起作用。
现在我删除了index2.html,但问题仍然存在。 这个?i = 1或2是关于PHP GET参数但是该参数将如何出现。
答案 0 :(得分:1)
我在reddit上发现this有类似的问题,结论是:
很可能在vhost级别有一些规则。
----是的,这是来自主持人,他们说他们不能禁用它,因为它保护我免受僵尸程序的攻击。</ p>
答案 1 :(得分:1)
对于那些有兴趣删除主要由免费主机提供商安装的/?i = 1的人来说,这是一个提示。
编辑&amp;上传网站根目录中的.htaccess文件
RewriteCond %{QUERY_STRING} ^(.*)\?i=1$ [NC]
RewriteRule ^(.*)$ /$1?%1 [R=301, L]
答案 2 :(得分:0)
如果您使用的是Apache,则必须先启用mod_rewrite
。
sudo a2enmod mod_rewrite
然后重新启动或重新加载服务器以进行新配置:
sudo service apache2 restart
(如果没有shell访问权限,请尝试为此找到一些精美的控制面板选项)
答案 3 :(得分:0)
?i = 1或2或3是为了保护您的网站免受机器人攻击。尝试使用cloudflare为您的网站或使用.htaccess代码删除? PARAMATERS。请注意,使用任何代码删除?i = 1将删除所有?参数。