【问题标题】:Mod-rewrite and php not working in in get methodMod-rewrite 和 php 在 get 方法中不起作用
【发布时间】:2016-02-08 22:20:59
【问题描述】:

在 mod-rewrite .HTACCESS 和 php 中有问题。 我有一个页面名称users.php 这个页面显示选定的用户,我的正常链接是这样的users.php?member=John 然后我将它更改为像这样users/member/John 的清理 url 但我的问题是当你使用普通 url 访问页面时它会工作很好,但现在我已经在我的 .HTACCESS 中重写了它,它会将我带到用户页面,但不会显示信息,它将为空

这是我的 .HTACCESS

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+users\.php\?member=([^\s&]+) [NC]
RewriteRule ^ users/member/%1? [R=301,L]
RewriteRule ^users/member/([^/]+)/?$ users.php?member=$1 [L,QSA]

这是我的 PHP 代码

<?php

  if(isset($_GET['member'])) { 


include($root . '_inc/dbconn.php');

try{

      $db_conn = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME,DB_USERNAME,DB_PASSWORD);
      $db_conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $stmtData = $db_conn->prepare("SELECT * FROM users WHERE username=:getmember ");
      $stmtData->bindParam(":getmember", $_GET['member']);
      $stmtData->execute();

    $UserData = $stmtData->fetch(PDO::FETCH_OBJ);
    if ($UserData) {
         $Dusername  = $UserData->username;
         $Dphoto = $UserData->photo;
         $Demail = $UserData->email;

      }
}
catch(PDOException $e)
    {
    echo "Error:" . $e->getMessage();
    }
$db_conn = null;
}

?>
<?php echo $Dusername;?>

【问题讨论】:

    标签: php .htaccess mod-rewrite


    【解决方案1】:

    问题是你的RewriteCond。您必须否定条件(注意“!”符号):

    RewriteCond %{REQUEST_URI} !^[A-Z]{3,}\s/+users\.php\?member=([^\s&]+) [NC]
    RewriteRule ^users/member/%1? [R=301,L]
    RewriteRule ^users/member/([^/]+)/?$ users.php?member=$1 [L,QSA]
    

    您可以在online htaccess tester 上测试您的重写规则。

    【讨论】:

    • 还是一样的
    猜你喜欢
    • 1970-01-01
    • 2012-07-21
    • 2017-07-10
    • 2011-10-28
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多