如何通过.htaccess移除文件名后的末尾斜杠并实现重定向?
解决.htaccess移除URL中.html后的斜杠并保留查询参数的重定向问题
直接在网站根目录的.htaccess文件中添加以下规则即可实现需求:
RewriteEngine On # 匹配带斜杠的.html路径并移除斜杠,保留查询参数 RewriteCond %{THE_REQUEST} ^GET\ /([^/]+)\.html/\?([^\s]+) [NC] RewriteRule ^ /%1.html?%2 [R=301,L]
规则说明:
RewriteEngine On:开启URL重写引擎,这是所有rewrite规则的运行前提RewriteCond行:匹配原始请求行,精准定位xxx.html/?xxx这类带多余斜杠的URL格式,[NC]标记表示匹配时忽略大小写RewriteRule行:将匹配到的URL重写为去掉斜杠的格式,同时完整保留原查询参数;R=301代表永久重定向(对搜索引擎友好),若仅需临时重定向可改为R=302;L标记表示此规则匹配后不再执行后续规则
如果你的.html文件不在网站根目录,比如存放在payment子目录下,需要调整规则中的路径匹配部分,示例如下:
RewriteCond %{THE_REQUEST} ^GET\ /payment/([^/]+)\.html/\?([^\s]+) [NC] RewriteRule ^payment/ /payment/%1.html?%2 [R=301,L]
内容的提问来源于stack exchange,提问作者Bespalov Alexey
相关产品推荐
相关产品推荐

