如何在htaccess rewrite rule中配置分页重写规则
.htaccess 分页URL重写配置方案
前置要求
- 确保Apache服务器已开启
mod_rewrite扩展模块 - 确保站点虚拟主机配置中已开启
AllowOverride All权限,允许.htaccess文件生效
配置规则
方案1:.htaccess放在网站根目录下
RewriteEngine On # 匹配/test/page+数字格式的请求 RewriteRule ^test/page([0-9]+)$ /test/pagination.php?page=$1 [L]
规则说明:
- 正则
^test/page([0-9]+)$会精准匹配/test/page加纯数字的路径,括号捕获到的数字会赋值给参数$1 - 末尾的
[L]标识表示匹配成功后不再执行后续重写规则,避免规则冲突 - 该重写为服务器内部跳转,用户浏览器地址栏不会发生变化,保留显性URL格式
方案2:.htaccess直接放在/test目录下
如果不想在根目录配置,也可以把.htaccess放到test子目录中,规则更简洁:
RewriteEngine On RewriteBase /test/ RewriteRule ^page([0-9]+)$ pagination.php?page=$1 [L]
可选优化
- 兼容末尾带斜杠的访问场景:如果需要支持
example.com/test/page2/格式的请求,把正则修改为^test/page([0-9]+)/?$即可,/?表示末尾斜杠为可选匹配 - 保留额外GET参数:如果需要把原请求附带的其他GET参数传递到重写后的地址,在规则末尾添加
QSA标识即可,例如[L,QSA]
内容的提问来源于stack exchange,提问作者cypherpunk
相关产品推荐
相关产品推荐

