duanci8209
2015-06-11 18:06
浏览 72
已采纳

找不到.htaccess重写规则页面

If page name doesn't exist then I would like to show page not found instead of a blank white page.

.htaccess:

RewriteEngine On
RewriteRule ^([0-9a-z\-\_]+)?$ page.php?name=$1 [L,QSA,NC]

page.php:

$name = filter_input(INPUT_GET, 'name');

$result = $mysqli->query("SELECT * FROM pages WHERE name='$name'");

while ($row = $result->fetch_assoc()) {
    echo $row['content'];

}

If some of you know a better way, please share it :)

图片转代码服务由CSDN问答提供 功能建议

如果页面名称不存在,那么我想显示 page not found 一个空白的白页。

.htaccess:

  RewriteEngine On 
RewriteRule ^([0-9a-z \  -  \ _  ] +)?$ page.php?name = $ 1 [L,QSA,NC] 
   
 
 

page.php:

  $ name = filter_input(INPUT_GET,'name'); 
 
 $ result = $ mysqli-> query(“SELECT * FROM pages WHERE name ='$ name'”); 
 
while(  $ row = $ result-> fetch_assoc()){
 echo $ row ['content']; 
 
} 
   
 
 

如果你们中的一些人 知道更好的方法,请分享:)

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

  • douyi1084 2015-06-11 19:37
    最佳回答

    You can change your PHP code like this:

    $name = filter_input(INPUT_GET, 'name');
    
    if ($result = $mysqli->query("SELECT * FROM pages WHERE name='$name'")) {
       if ( $result->num_rows == 0 ) {
          printf('404 / page Not Found');
          exit;
       }
       else {
          while ($row = $result->fetch_assoc()) {
             echo $row['content'];
          }
       }
    } else {
       printf("Error: %s
    ", $mysqli->error);
       exit;
    }
    
    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题