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

求助:移除URL中的.html后缀操作始终失败

移除URL中.html后缀的.htaccess配置修改方案

你的现有.htaccess配置仅实现了HTTPS强制跳转、移除URL尾部斜杠和请求转发到index.php,缺少处理.html后缀的重写规则,因此无法移除URL中的.html后缀。以下是调整后的完整配置:

<IfModule mod_rewrite.c>
    RewriteEngine On
    # 强制HTTPS跳转
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    # 移除URL尾部斜杠
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # 将带.html的URL永久跳转到无后缀URL
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html\s [NC]
    RewriteRule ^ %1 [R=301,L]

    # 允许访问无后缀URL时映射到对应的.html文件
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}.html -f
    RewriteRule ^(.*)$ $1.html [L]

    # 请求转发到index.php(保留原有规则)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.php [QSA,L]
</IfModule>

关键规则说明

  • 带.html的URL跳转:通过%{THE_REQUEST}匹配原始请求,避免内部重写循环,确保用户和搜索引擎访问的是无后缀的标准URL。
  • 无后缀URL映射:当请求的文件不存在时,检查是否存在对应的.html文件,存在则内部映射到该文件,实现无后缀访问。

注意事项

  • 确认服务器已启用mod_rewrite模块
  • 测试前清空浏览器缓存,避免301跳转的旧缓存干扰
  • 确保服务器配置中允许.htaccess生效(需设置AllowOverride All)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 17:07:17