Mod rewrite和php在get方法中不起作用
mod rewrite.HTACCESS和php中存在问题。 我有一个页面名Mod rewrite和php在get方法中不起作用,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,mod rewrite.HTACCESS和php中存在问题。 我有一个页面名users.php这个页面显示选中的用户,我的正常链接是这样的users.php?member=John,然后我将其更改为像这样的清理urlusers/member/John,但我的问题是,当你使用正常url访问页面时,它可以正常工作,但现在我已经在我的.HTACCESS中重写了它到用户页面但不显示信息时,该页面将为空 这是我的.HTACCESS RewriteCond %{THE_REQUEST} ^[A-Z]{3,}
users.php
这个页面显示选中的用户,我的正常链接是这样的users.php?member=John
,然后我将其更改为像这样的清理urlusers/member/John
,但我的问题是,当你使用正常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;?>
问题在于您的
重写条件。您必须否定该条件(注意“!”符号):
您可以在上测试重写规则。仍然是一样的
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]