Php Url重写重定向到错误页面

Php Url重写重定向到错误页面,php,url,Php,Url,我正在用php做一个项目。我重写了一些动态url http://domain.com/?a=username 我正在将url重写为 http://domain.com/username 在索引页面中,将使用$\u GET['a']值从数据库中选择值。如果在数据库中找不到$\u GET['a'],则会生成错误消息。实际上,我的问题是服务器将包含css文件夹。从css获取css文件时,它将重定向到错误页面。请帮助我解决这个问题 代码是 $cat=$_GET['a']; $sql="SEL

我正在用php做一个项目。我重写了一些动态url

http://domain.com/?a=username

我正在将url重写为

http://domain.com/username

在索引页面中,将使用$\u GET['a']值从数据库中选择值。如果在数据库中找不到$\u GET['a'],则会生成错误消息。实际上,我的问题是服务器将包含css文件夹。从css获取css文件时,它将重定向到错误页面。请帮助我解决这个问题

代码是

   $cat=$_GET['a'];
   $sql="SELECT *  FROM `content` WHERE category=$cat";
$result=mysql_query($sql);
$no=mysql_num_rows($result);
if($no>0)
{

    while($row = mysql_fetch_array($result))
         {
          $id=$row['id'];
         } 

        S($id,$cat,$sub,$year);
}
else
{echo "<META HTTP-EQUIV=Refresh CONTENT='0; URL=error.php'>";
}
$cat=$\u GET['a'];
$sql=“从'content'中选择*,其中类别=$cat”;
$result=mysql\u查询($sql);
$no=mysql\u num\u行($result);
如果($no>0)
{
while($row=mysql\u fetch\u数组($result))
{
$id=$row['id'];
} 
S($id,$cat,$sub,$year);
}
其他的
{echo”“;
}

在重写规则上方的.htaccess文件中,添加以下内容:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
事实上,第一个是您需要的规则,第二个只是确保您将来能够访问另一个目录(例如,您希望在subdir中有其他脚本)

执行以下操作:

  • 为js/css等资产创建公共目录
  • 让您的.htaccess(或您用来清理URL的任何东西)将所有请求指向公用文件夹路径的路径
  • 将代码中的A参数设置为如下所示
    $path=!空($\u GET['a'])$_获取['a']:''
  • 通过这种方式,您可以获得以下好处:

    mysite.com/someextension=>您的
    url=someextension


    您可以通过直接url点击您的资产:
    mysite.com/public/css/style.css

    执行以下操作:

    if(preg_match('/[0-9a-zA-Z]+\.css$/', $_GET['a'], $url))
    {
        header("Content-type: text/css");
        echo file_get_contents('./css/' . $url[0]);
        exit();
    }