PHP伪静态分页是一种将动态网页URL转换为静态URL的技术,以提高用户体验和搜索引擎优化(SEO)。通过伪静态分页,用户看到的URL是静态的,但实际上服务器仍然处理动态请求。
.htaccess文件或服务器配置文件(如Nginx的nginx.conf)进行URL重写。以下是一个基于URL重写的PHP伪静态分页示例:
.htaccess文件RewriteEngine On
RewriteRule ^page/([0-9]+)/?$ index.php?page=$1 [L]<?php
// 假设每页显示10条记录
$items_per_page = 10;
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$offset = ($page - 1) * $items_per_page;
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database');
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 查询数据
$sql = "SELECT * FROM items LIMIT $offset, $items_per_page";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
} else {
echo "0 结果";
}
// 分页链接
$total_rows = $conn->query("SELECT COUNT(*) FROM items")->fetch_row()[0];
$total_pages = ceil($total_rows / $items_per_page);
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='page/$i'>第 $i 页</a> ";
}
$conn->close();
?>原因:可能是.htaccess文件未正确配置或服务器未启用重写模块。
解决方法:
.htaccess文件位于网站根目录。mod_rewrite模块。.htaccess文件的语法是否正确。原因:可能是URL重写规则不正确或PHP脚本中处理分页逻辑有误。
解决方法:
.htaccess文件中的重写规则正确。原因:可能是数据库连接信息错误或数据库服务器未启动。
解决方法:
通过以上内容,你应该对PHP伪静态分页有了全面的了解,并能解决常见的相关问题。
没有搜到相关的文章