【发布时间】:2017-11-08 20:44:20
【问题描述】:
我想用这样的 Htaccess Mod Rewrite 创建 SEO 友好的 URL:
http://localhost/try/pagination/page/4
但是现在我们点击下一个按钮时会显示输出
http://localhost/try/pagination.php/page/pagination.php/page/2
我的php代码是:
<?php
//include 'config.php';
define('DB_HOST', 'localhost');
define('DB_NAME', 'wr');
define('DB_USER','root');
define('DB_PASSWORD','');
$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error());
echo $_GET['page'];
$rowsPerPage = 1;
if(isset($_GET['page']))
{
$pageNum= $_GET['page'];
}
else
$pageNum = 1;
$previousRows =($pageNum - 1) * $rowsPerPage;
$query = "SELECT * FROM articles LIMIT $previousRows, $rowsPerPage";
$result = mysql_query($query) or die('Error couldn\'t get the data').mysql_error();
echo "<table border=1>\n";
echo "<tr><th>ID</th><th>Name</th><th>Password</th><th>Perm</th><th>Email</th>
<th>Date</th></tr>";
while(list($id,$title,$content) = mysql_fetch_array($result))
{
echo "<tr><td>$id</td><td>$title</td><td>$content</td></tr>";
}
echo '</table>';
$query = "SELECT COUNT(title) AS numrows FROM articles";
$result = mysql_query($query) or die('Error, couldn\'t get count title=\"$page\"').mysql_error();
$row = mysql_fetch_assoc($result);
$numrows = $row['numrows'];
$lastPage = ceil($numrows/$rowsPerPage);
echo $lastPage;
$phpself = "pagination.php";
echo $phpself;
if ($pageNum > 1)
{
$page = $pageNum - 1;
$prev = " <a href=\"$phpself?page=$page\" title=\"Page $page\">[Back]</a> ";
$first = " <a href=\"$phpself?page=1\" title=\"Page 1\">[First Page]</a> ";
}
else
{
$prev = ' [Back] ';
$first = ' [First Page] ';
}
if ($pageNum < $lastPage)
{
$page = $pageNum + 1;
$next = " <a href=\"$phpself/page/$page\" title=\"Page $page\">[Next]</a> ";
$last = " <a href=\"$phpself?page=$lastPage\" title=\"Page $lastPage\">[Last Page]</a> ";
}
else
{
$next = ' [Next] ';
$last = ' [Last Page] ';
}
echo $first . $prev . " Showing page <bold>$pageNum</bold> of
<bold>$lastPage</bold> pages " . $next . $last;
?>
.htaccess 文件代码为:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^pagination/page/([0-9]+)\.html$ pagination.php?page=$1
下一个要求是我们是否传递两个变量
http://localhost/try/pagination/tag/php/page/2
如何更改 PHP 代码和 .htaccess 文件?
【问题讨论】:
-
mysql_*ahem* : stackoverflow.com/questions/12859942/… -
http://localhost/wr/try/pagination.php/page/pagination.php/page/2是 真的 URL吗? 2xpagination.php在里面? ...您在哪里找到该模式:RewriteRule ^pagination/([0-9]+)\.html$ pagination.php?page=$1- 这只是重写 pagination/123.html 之类的东西,似乎根本不符合您的要求... -
现在更新帖子,请给我解决方案
-
棘手,因为我很难准确地确定您想要实现的目标,您是否希望像
http://localhost/try/pagination/page/4这样的 URL 指向http://localhost/try/pagination.php?page=4? -
我想把这个 seo 友好的网址:localhost/try/pagination.php?page=4 转换成这个:localhost/try/pagination/page/4