Php htaccess不显示mysql
我正在尝试重写URL,但它并没有按照我的计划进行 我想从中得到:Php htaccess不显示mysql,php,.htaccess,Php,.htaccess,我正在尝试重写URL,但它并没有按照我的计划进行 我想从中得到: /category.php?nameid=Test&id=1 为此: /c/Test/1 目前只有这一个有效: /c/Test/当我转到/c/Test/1/我看到一个白色页面时,他没有从mysql获取信息 我的访问代码: Options +FollowSymLinks RewriteEngine on RewriteBase / RewriteRule c/(.*)$ category.php?nameID=$1 [L] Rewr
/category.php?nameid=Test&id=1
为此:
/c/Test/1
目前只有这一个有效:
/c/Test/
当我转到/c/Test/1/
我看到一个白色页面时,他没有从mysql获取信息
我的访问代码:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule c/(.*)$ category.php?nameID=$1 [L]
RewriteRule c/(.*)/(.*)$ category.php?nameID=$1&id=$2&%{QUERY_STRING} [L]
RewriteRule ^([^\s%20]*)[\s%20]+(.*)$ $1-$2 [E=NOSPACE:1]
RewriteCond %{ENV:NOSPACE} =1
RewriteRule ^([^\s%20]+)$ $1 [R=301,L]
该页面的我的php代码:
<?php
// BEGIN OF SHOWING CONTENT PAGE
if (isset($_GET['id'])){
$naamID = mysql_real_escape_string($_GET['nameID']);
$id = mysql_real_escape_string($_GET['id']);
$idnext = $id + 1;
$gn = (" SELECT * FROM category WHERE name='".$naamID."'") or die(mysql_error());
$go = (" SELECT * FROM post WHERE id='".$id."'") or die(mysql_error());
$gnn = mysql_query($gn) or die(mysql_error());
$goo = mysql_query($go) or die(mysql_error());
$gnnn = mysql_fetch_array($gnn);
$gooo = mysql_fetch_array($goo);
?>
<?php
echo '<p>';
if(empty($gooo['youtube'])){
} else {
?> <h1> <?php echo htmlspecialchars($gooo["title"]); ?> </h1><br />
<?php
$fullurl1 = $gooo['youtube'];
$videoid1=substr($fullurl1,-11);
?>
<?php
echo '<p><a href="/editpost.php?id='.$gooo['id'].'"><i>Edit this post</i></a><br />';
echo '<iframe width="560" height="315" src="//www.youtube.com/embed/'.$videoid1.'" frameborder="0" allowfullscreen></iframe><br />';
echo '</p>';
}
if(empty($gooo['pic'])){
} else {
?> <h1> <?php echo htmlspecialchars($gooo["title"]); ?> </h1><br />
<?php
echo '<p><a href="/editpost.php?id='.$gooo['id'].'"><i>Edit this post</i></a><br />';
echo '<img src="'.$gooo["pic"].'" style="max-height: auto; max-width: 600px;"/><br></p>';
}
echo '</p>';
}
?>
<?php
// END OF SHOWING CONTENT PAGE
// BEGIN category page
if(isset($_GET['nameID'])){
// PAGE BEGIN
$count_query = mysql_query("SELECT * FROM post ORDER BY date ASC");
$nr = mysql_num_rows($count_query);
if(isset($_GET['page'])){
$page = preg_replace('#[^0-9]#i','',$_GET['page']);
}else{
$page = 1;
}
$perPage = 5;
$lastPage = ceil($nr / $perPage);
if($page < 1) {
$page = 1;
} else if ($page > $lastPage){
$page = $lastPage;
}
$limit = 'LIMIT ' . ($page - 1) * $perPage .',' .$perPage;
$query = ("SELECT * FROM post WHERE cat='".$nameID."' ORDER BY date DESC ".$limit."");
if($lastPage != 1){
if($page != $lastPage){
$naamID2 = mysql_real_escape_string($_GET['nameID']);
$next = $page + 1;
$pagination .= '<a href="/category.php?nameID='.$naamID2.'&page='.$next.'">Next.. </a>';
}
if($page != 1){
$naamID1 = mysql_real_escape_string($_GET['nameID']);
$prev = $page - 1;
$pagination .= '<a href="/category.php?nameID='.$naamID1.'&page='.$prev.'"> ..Prev</a>';
}
}
// PAGE END
?>
<?php
$name = mysql_real_escape_string($_GET['nameID']);
$nameID = mysql_real_escape_string($_GET['nameID']);
$na = (" SELECT * FROM category WHERE name='".$nameID."'") or die(mysql_error());
$nb = (" SELECT * FROM post WHERE cat='".$nameID."' ORDER BY date DESC ".$limit."") or die(mysql_error());
$naa = mysql_query($na) or die(mysql_error());
$nbb = mysql_query($nb) or die(mysql_error());
$naaa = mysql_fetch_array($naa);
?>
<h1> <?php echo htmlspecialchars($naaa["name"]); ?></h1><br />
<i> <?php echo htmlspecialchars($naaa["description"]); ?> </i><br />
<?php
echo '<p><a href="category.php"><i>back to all categoties</i></a></p>';
while($nbbb=mysql_fetch_array($nbb, MYSQL_ASSOC)){
$fullurl = $nbbb['youtube'];
$videoid=substr($fullurl,-11);
// showing youtube video when there is no picture
if(empty($nbbb['youtube'])){
} else {
if( $nbbb['NSFW'] == 0) {
echo '<h1><a href="category.php?nameid='.$naaa['name'].'&id='.$nbbb['title'].'">';?><?php echo htmlspecialchars($nbbb["title"]); ?></a></h1><br><?php
echo '<p><iframe width="560" height="315" src="//www.youtube.com/embed/'.$videoid.'" frameborder="0" allowfullscreen></iframe>';
echo '</p>';
}
if( $nbbb['NSFW'] == 1) {
echo '<h1><a href="category.php?nameid='.$naaa['name'].'&id='.$nbbb['title'].'">';?><?php echo htmlspecialchars($nbbb["title"]); ?></a></h1><br><?php
echo '<p><a href="category.php?nameid='.$naaa['name'].'&id='.$nbbb['title'].'"><img src="http://i.imgur.com/w88amwc.png"/></a><br>';
echo '</p>';
}
}
// showing picture when there is no youtube
if(empty($nbbb['pic'])){
} else {
if( $nbbb['NSFW'] == 0) {
echo '<h1><a href="category.php?nameid='.$naaa['name'].'&id='.$nbbb['title'].'">'; ?><?php echo htmlspecialchars($nbbb["title"]); ?> <?php echo '</a></h1><br>'; ?>
<?php
echo '<p><img src="'.$nbbb["pic"].'" style="max-height: auto; max-width: 600px;"/>';
echo '</p>';
}
if( $nbbb['NSFW'] == 1) {
echo '<h1><a href="category.php?nameid='.$naaa['name'].'&id='.$nbbb['title'].'">'; ?><?php echo htmlspecialchars($nbbb["title"]); ?><?php echo '</a></h1><br>'; ?>
<?php
echo '<p><a href="category.php?nameid='.$naaa['name'].'&id='.$nbbb['title'].'"/><img src="http://i.imgur.com/w88amwc.png"/></a><br>';
echo '</p>';
}
}
}
echo '<p>';
echo '<b><i>'.$pagination.'</b></i>';
echo '</p>';
}// END OF SHOWING MAIN PAGE OF CATEGORYS
?>
第一行表示所有内容(乘以0或更多)都将到达变量$1。因此,当您输入/c/Test/1/
时,您将进入category.php?nameID=Test/1/
。您需要重写一点,以便只允许您想要的字符,例如,仅a-zA-z结构。第二行也一样,在第一个变量的位置,例如a-zA-Z,第二个变量的位置是0-9,因为它是ID,所以可能是一个int。示例脚本
RewriteRule c/([a-zA-Z]+)$ category.php?nameID=$1 [L]
RewriteRule c/([a-zA-Z]+)/([0-9]+)$ category.php?nameID=$1&id=$2&%{QUERY_STRING} [L]
您应该在PHP中使用这种逻辑,而不是在.htaccess中。非常感谢您在这方面的帮助。但是现在页面category.php?nameID=$1&id=$2
出现了一个小问题,他显示了我需要的内容,但包括了?nameID=$1中我不想显示的详细信息哦,等等,你从nameID哪里得到这些详细信息?你对数据库的查询是什么?我不知道你的意思,所以我已经将我的脚本上传到了pastebin。此粘贴不存在,可能您在选项中给了10分钟。把它贴在主贴上。
RewriteRule c/([a-zA-Z]+)$ category.php?nameID=$1 [L]
RewriteRule c/([a-zA-Z]+)/([0-9]+)$ category.php?nameID=$1&id=$2&%{QUERY_STRING} [L]