Url重写重定向到错误页面

时间:2012-08-03 16:26:14

标签: php url

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

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

我将网址重写为

http:// domain.com/username

索引页面中的

将使用$ _GET ['a']值从数据库中选择值。如果在数据库中找不到$ _GET ['a'],它将产生错误消息。实际上我的问题是服务器将包含< strong> 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'>";
}

3 个答案:

答案 0 :(得分:0)

在RewriteRule上方的.htaccess文件中,添加以下内容:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

嗯,实际上第一个是你需要的规则,第二个只是确保你以后能够访问另一个目录(例如你想在subdir中有一些其他的脚本)

答案 1 :(得分:0)

这样做:

  1. 为js / css
  2. 等资源创建公共目录
  3. 让你的.htaccess(或者你用来做干净网址的任何内容)将所有请求指向公用文件夹路径的路径
  4. 在代码中将您的A参数设置为此$path = !empty($_GET['a']) ? $_GET['a'] : '';
  5. 通过这种方式,您可以获得以下好处:

    mysite.com/someextension =&gt;你的url = someextension

    您可以使用直接网址mysite.com/public/css/style.css

    来点击您的资源

答案 2 :(得分:0)

做这样的事情:

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