You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用.htaccess将所有URL重定向到HTTPS,仅对垃圾URL返回410

调整HTACCESS规则:垃圾URL直接返回410,其余强制HTTPS重定向

需求说明

网站已从HTTP迁移至HTTPS,需实现以下逻辑:

  • 所有正常URL强制301重定向到HTTPS
  • 包含特定特征的垃圾URL直接返回410状态码,不触发HTTPS跳转

预期效果

http://www.example.com/caterory/article-name/?vn/2022-06-24fivhg585.html ==> 返回410,不跳转至HTTPS
http://www.example.com/caterory/article-name/webhook.php?tw3fpage3rjnso530724 ==> 返回410,不跳转至HTTPS
http://www.example.com/caterory/article-name/football.php?fsmkfpagefgdg456 ==> 返回410,不跳转至HTTPS

当前问题

垃圾URL会先触发301跳转至HTTPS,再返回410状态码,不符合预期:

http://www.example.com/caterory/article-name/?vn/2022-06-24fivhg585.html ==> 301至https://www.example.com/caterory/article-name/?vn/2022-06-24fivhg585.html,再返回410
http://www.example.com/caterory/article-name/webhook.php?tw3fpage3rjnso530724 ==> 301至https://www.example.com/caterory/article-name/webhook.php?tw3fpage3rjnso530724,再返回410
http://www.example.com/caterory/article-name/football.php?fsmkfpagefgdg456 ==> 301至https://www.example.com/caterory/article-name/football.php?fsmkfpagefgdg456,再返回410

当前使用的规则

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^.*$ https://www.%1%{REQUEST_URI} [L,NE,R=301]

RewriteEngine On
RewriteCond %{QUERY_STRING} ^vn/ [NC]
RewriteRule ^ - [R=410]

RewriteEngine On
RewriteCond %{THE_REQUEST} /webhook.php [NC]
RewriteRule ^ - [R=410]

RewriteEngine On
RewriteCond %{THE_REQUEST} /football.php [NC]
RewriteRule ^ - [R=410]

解决方案

核心逻辑:将返回410的规则放在HTTPS重定向规则之前。Apache的Rewrite规则按从上到下顺序执行,匹配到410规则后用[L]标记终止后续处理,直接返回状态码,避免触发HTTPS跳转。同时无需重复声明RewriteEngine On,仅开头声明一次即可。

修改后的完整规则:

RewriteEngine On

# 优先处理垃圾URL,直接返回410
RewriteCond %{QUERY_STRING} ^vn/ [NC]
RewriteRule ^ - [L,R=410]

RewriteCond %{THE_REQUEST} /webhook.php [NC]
RewriteRule ^ - [L,R=410]

RewriteCond %{THE_REQUEST} /football.php [NC]
RewriteRule ^ - [L,R=410]

# 处理HTTPS和www的强制重定向
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]

规则说明

  1. 410规则前置:优先匹配垃圾URL特征,匹配成功后终止后续规则执行,直接返回410,跳过HTTPS重定向步骤。
  2. 精简冗余配置:RewriteEngine On仅需开头声明一次,重复声明属于冗余代码。
  3. 保留精准匹配:垃圾URL的匹配条件(QUERY_STRING、THE_REQUEST)保持不变,确保准确拦截目标垃圾链接。

内容的提问来源于stack exchange,提问作者Arnaud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 11:50:21