Php 重写规则不适用于分页

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=

我所有的重写规则都在运行,除了分页规则

以下是我尝试过的:除了分页失败之外,我删除了所有重写,我尝试了大约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=$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
(这是您在问题开始时所说的)?您能帮我吗?