如何在.htaccess中配置分页以获取/blog/page/后的数字
提取/blog/page/后的数字的.htaccess配置方案
在现有.htaccess基础上,添加一条针对性的重写规则,即可提取/blog/page/后的数字并传递给后端PHP文件。修改后的完整配置如下:
Options -MultiViews RewriteEngine On Options -Indexes RewriteBase /blog/ # 自动为无末尾斜杠的URL添加斜杠 RewriteCond %{REQUEST_URI} !(/$|\.) RewriteRule (.*) %{REQUEST_URI}/ [L,R=307] # 匹配page/数字格式的URL,提取页码参数 RewriteRule ^page/(\d+)/$ index.php?url=page/$1&page_num=$1 [QSA,L] # 处理其他非文件/目录的请求(原有逻辑保留) RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
关键规则说明
- 新增的
RewriteRule ^page/(\d+)/$ index.php?url=page/$1&page_num=$1 [QSA,L]:^page/(\d+)/$精准匹配page/后跟1个及以上数字、且以斜杠结尾的URL路径(如page/2/)(\d+)是正则捕获组,专门提取数字部分,后续用$1引用该值- 重写时同时传递
url参数(兼容原有业务逻辑)和page_num参数(直接提供页码数字) QSA确保URL中原有查询参数不会丢失,L表示匹配该规则后终止后续规则执行
后端获取方式
在index.php中,直接通过$_GET['page_num']即可获取到页码数字。例如访问www.example.com/blog/page/3/时,$_GET['page_num']的值为3。
内容的提问来源于stack exchange,提问作者Phenut Hijara
相关产品推荐
相关产品推荐

