Php 重写规则不适用于分页
我所有的重写规则都在运行,除了分页规则 以下是我尝试过的:除了分页失败之外,我删除了所有重写,我尝试了大约50种不同的web重写都失败了。。我尝试了一个重写生成器,但失败了 我的分页工作如下Php 重写规则不适用于分页,php,mod-rewrite,Php,Mod Rewrite,我所有的重写规则都在运行,除了分页规则 以下是我尝试过的:除了分页失败之外,我删除了所有重写,我尝试了大约50种不同的web重写都失败了。。我尝试了一个重写生成器,但失败了 我的分页工作如下 http://example.com/list.php?p=1 RewriteRule ^([^/][0-9]*)$ list.php?p=$1 现在我重写如下 http://example.com/list.php?p=1 RewriteRule ^([^/][0-9]*)$ list.php?p=
http://example.com/list.php?p=1
RewriteRule ^([^/][0-9]*)$ list.php?p=$1
现在我重写如下
http://example.com/list.php?p=1
RewriteRule ^([^/][0-9]*)$ list.php?p=$1
htacess
当我转到http://example.com/list/p1
我得到一个500错误
我已经删除了很多db代码,因为除了分页url重写之外,其他一切都可以正常工作。不管我如何写链接或修改重写,它都不起作用,我已经遵循了大约50个例子,都不起作用。。然而,我为其他页面编写的所有其他重写都很好
<div class="large-centered">
<?php
$per_page = 2;
if (isset($_GET['page'])) {
$page = $_GET['page'];
} else {
$page = "";
}
if ($page == "" || $page == 1) {
$page_1 = 0;
} else {
$page_1 = ($page * $per_page) - $per_page;
}
$stmt = $db->prepare("SELECT * FROM users");
$stmt->execute();
$stmt->store_result();
$result = $stmt->get_result();
$count = $stmt->num_rows;
if ($count < 1) {
echo "No Users";
} else {
$count = ceil($count / $per_page);
$stmt = $db->prepare("
SELECT users.ID, users.Name, users.GroupID, locations.LocationCode, locations.LocationFlag
FROM users, locations
WHERE users.Location = locations.LocationCode AND GroupID != 1 ORDER BY users.ID DESC LIMIT $page_1, $per_page");
$stmt->execute();
$result = $stmt->get_result();
$stmt->close();
?>
<div class="pagin-nav">
<ul class="pagination">
<?php
$number_list = array();
for ($i = 1; $i <= $count; $i ++) {
if ($i == $page) {
echo "<li><a class='active' href='list.php?page={$i}'>{$i}</a></li>";
} else {
echo "<li><a href='list.php?page={$i}'>{$i}</a></li>";
}
}
?>
</ul>
</div><?php
while ($row = mysqli_fetch_assoc($result)) {
$ID = $row['ID'];
$GroupID = $row['GroupID'];
$Name = $row['Name'];
if ($GroupID != 1) {
//My HTML and output
echo '<div class="columns small-12 medium-6 large-3 end pad">html</div>';
} else {
return true;
} } } ?>
</div>
</div>
<div class="pagin-nav">
<ul class="pagination">
<?php
$number_list = array();
for ($i = 1; $i <= $count; $i ++) {
if ($i == $page) {
echo "<li><a class='active' href='list.php?page={$i}'>{$i}</a></li>";
} else {
echo "<li><a href='list.php?page={$i}'>{$i}</a></li>";
}
}
?>
</ul>
</div>
禁用多视图
,并在添加.php
文件扩展名的规则之前包含此指令
由于/list
映射到物理(即list.php
)的基本名称,多视图(mod_协商的一部分)将给您带来问题(它与mod_rewrite完全相同,并将导致冲突)
例如,在根.htaccess
文件中:
Options -MultiViews
RewriteEngine On
RewriteRule ^list/([a-zA-Z0-9]+)$ list.php?page=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
还包括重写规则
上的L
(last
)标志
请注意,这将把/list/p1
重写为/list.php?page=p1
在哪里使用此指令?“但如果我这样做了”-你似乎已经停止了句子的中间?RewriteRule^list/p?(\d*)/?$list.php?p=$1[L]
@Deadooshka我已经试过了,还有大约50个其他人似乎没有重写过,即使我键入了它的路径,我所有的其他重写都很好。这一个在这里根本不起作用href=list.php?p={$I}“
必须是href='/list.php?p={$i}'
或href='/list/p{$i}'
。注意,所有不带前斜杠的html路径都是相对于/list/@Deadooshka的。我可以添加完整路径http:,但它仍然会出现错误。我正在更新以显示我的所有代码。list.php?page=p1这就是我从代码段复制的指令所做的。这应该转到list.php?page=1
还是list.php?p=1
(这是您在问题开始时所说的)?您能帮我吗?