如何在.htaccess中配置301重定向移除URL特定文件夹并保留重写规则?
解决.htaccess中带/folder/路径的URL 301重定向及访问问题
正确的.htaccess规则配置如下:
# 301永久重定向:将带/folder/的URL跳转至无folder的路径 RewriteRule ^folder/([A-Za-z0-9-]+)/?$ /$1 [R=301,L,NC] # 内部重写:处理无folder的URL,映射到业务处理文件 RewriteRule ^([A-Za-z0-9-]+)/?$ post-details.php?url=$1 [NC,L]
规则说明:
- 第一条规则:匹配所有以
folder/开头、后续为字母/数字/连字符的URL,执行301永久重定向,去掉路径中的folder/。R=301指定重定向类型,L表示执行完该规则后停止后续规则解析,NC表示匹配时不区分大小写。 - 第二条规则:直接匹配无
folder/的目标URL,内部重写到post-details.php并传递url参数,实现内容正常访问。
原配置无效的原因:
你仅添加了两条内部重写规则,缺少301重定向规则,导致访问带folder/的URL时不会触发跳转,仅做内部解析;同时两条重写规则的匹配范围存在重叠,服务器无法正确识别优先级,进而出现异常。
内容的提问来源于stack exchange,提问作者Joel
相关产品推荐
相关产品推荐

