如何配置Htaccess rewrite规则基于URL字符重写到多级目录
.htaccess URL路径分字符重写规则配置方案
前置要求
- 确保Apache服务器已开启
mod_rewrite扩展 - 站点虚拟主机配置中
AllowOverride参数设置为All,允许.htaccess文件生效
规则内容
将以下代码添加到站点根目录的.htaccess文件中即可:
RewriteEngine On # 可选:仅当目标路径文件存在时才执行重写,避免无效请求占用资源 RewriteCond %{DOCUMENT_ROOT}/$1/$2/$3/$0 -f # 内部重写,浏览器地址栏不变 RewriteRule ^([a-z])([a-z])([a-z])[^/]*\.html$ /$1/$2/$3/$0 [L] # 如需外部跳转(地址栏显示实际路径),替换上面的RewriteRule为以下行即可 # RewriteRule ^([a-z])([a-z])([a-z])[^/]*\.html$ /$1/$2/$3/$0 [L,R=301]
规则说明
- 规则默认匹配所有根目录下
.html后缀的请求,自动取文件名前三个字母作为三级子目录路径,比如/request_url.html会被重写到/r/e/q/request_url.html - 若需要忽略文件名大小写匹配,可在规则末尾的
[L]中添加NC标志,改为[L,NC] - 若需要适配更多文件后缀,可将
\.html替换为\.(html|htm|png|jpg)等你需要支持的后缀列表
内容的提问来源于stack exchange,提问作者remi
相关产品推荐
相关产品推荐

