ByetHost分销免费空间会出现 /?i=1 小尾巴,解决方案如下:
效果演示
http://88in.dpdns.org (没有添加代码之前,有?i=1)
https://91mf.xlphp.net(添加代码之后,没有了?i=1)
操作方法
根目录创建.htaccess文件,把以下代码添加进去即可去除。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} (^|&)i=[0-9]+(&|$) [NC]
RewriteRule ^(.*)$ /$1? [R=301,L]
</IfModule>
逐行解释
<IfModule mod_rewrite.c>
…</IfModule>
- 表示这段规则只有在 Apache 启用了 mod_rewrite 模块时才会生效。
RewriteEngine On
- 开启 URL 重写功能。
RewriteCond %{QUERY_STRING} (^|&)i=[0-9]+(&|$) [NC]
- 条件:匹配 URL 的 查询字符串 (Query String) 中是否有
i=数字
这样的参数。 (^|&)
确保i=
前面是开头或&
,避免误匹配。[0-9]+
表示一个或多个数字。(&|$)
确保参数结尾是&
或字符串结束。[NC]
表示 不区分大小写。
i=数字
参数,就会触发规则。
例如:https://example.com/page.php?i=123 https://example.com/page.php?x=1&i=99&y=2
- 条件:匹配 URL 的 查询字符串 (Query String) 中是否有
RewriteRule ^(.*)$ /$1? [R=301,L]
- 把符合条件的 URL 301 永久重定向到一个 去掉
i
参数的新地址。 ^(.*)$
匹配任意路径。/$1?
表示重定向到相同的路径,但后面加一个空的?
,意思是 清空原有的 query string。[R=301,L]
:执行 301 永久重定向,并且这是最后一条规则(L = Last)。
https://example.com/page.php?i=123 → https://example.com/page.php https://example.com/page.php?i=99&x=1 → https://example.com/page.php
- 把符合条件的 URL 301 永久重定向到一个 去掉
总结
这段 .htaccess
的作用是:
👉 检测 URL 查询字符串里是否存在 i=数字
这个参数,如果有,就把它重定向到去掉该参数的 URL。
- 目的通常是 去掉无用参数,避免 SEO 重复页面。
- 返回码
301
说明是永久跳转。
ByetHost分销免费空间去除 /?i=1 小尾巴代码:目前有 1 条评论