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

如何通过.htaccess为网站所有URL末尾添加?1?

给网站所有URL末尾添加?1的.htaccess实现方案

要给所有不带查询字符串的URL加上?1来绕过缓存,你可以在现有的.htaccess规则中插入重定向规则,位置很关键——必须放在WWW和HTTPS的强制重定向之后,避免出现多重跳转问题。

具体规则添加方式

直接在HTTPS重定向的规则后面插入以下代码:

# 给无查询字符串的URL添加?1
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ /$1?1 [R=302,L]
  • R=302是临时重定向,先用来测试效果,确认没问题再改成R=301永久重定向,这样后续取消规则时不会残留浏览器缓存。
  • 如果不想给静态文件(图片、CSS、JS这类)加这个后缀,可以加个过滤条件,把上面的规则换成:
    # 排除静态文件,仅给页面URL加?1
    RewriteCond %{REQUEST_URI} !\.(png|jpg|jpeg|gif|css|js|ico)$ [NC]
    RewriteCond %{QUERY_STRING} ^$
    RewriteRule ^(.*)$ /$1?1 [R=302,L]
    
    后缀列表可以根据你的网站实际资源类型调整。

修改后的完整.htaccess代码

<IfModule LiteSpeed> 
CacheEngine off 
LiteMage off 
</IfModule>

Options -Indexes
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# 新增:给无查询字符串的URL添加?1
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ /$1?1 [R=302,L]

# 可选:若需排除静态文件,替换上面的规则为以下内容
# RewriteCond %{REQUEST_URI} !\.(png|jpg|jpeg|gif|css|js|ico)$ [NC]
# RewriteCond %{QUERY_STRING} ^$
# RewriteRule ^(.*)$ /$1?1 [R=302,L]

RewriteRule ^(files)($|/) - [L]
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php?qa-rewrite=$0&%{QUERY_STRING} [L]
</IfModule>

关键说明

  • 这条规则只会对没有查询字符串的URL生效,如果URL本身已经带有?xxx,不会重复添加?1。
  • 放在WWW/HTTPS重定向之后,是为了先把URL标准化成https://www.xxx.com的格式,再统一添加查询字符串,避免出现多次重定向。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:40:44