0

私は php.I を使用してプロジェクトを行っています。いくつかの動的 URL を書き直しました。

http:// domain.com/?a=ユーザー名

私はURLをに書き換えていました

http:// domain.com/ユーザー名

インデックス ページでは、$_GET['a'] 値を使用してデータベースから値を選択します。データベースで $_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'>";
}
4

3 に答える 3

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();
}
于 2012-08-03T16:59:27.707 に答える
0

RewriteRule の上の .htaccess ファイルで、次を追加します。

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

実際、最初のものは必要なルールであり、2番目のものは、将来別のディレクトリにアクセスできるようにするためのものです(たとえば、サブディレクトリ内に他のスクリプトを入れたい場合など)

于 2012-08-03T16:29:09.777 に答える
0

これを行う:

  1. js / css などのアセット用のパブリック ディレクトリを作成する
  2. .htaccess (またはクリーン URL を実行するために使用しているもの) に、すべての要求がパブリック フォルダー パスのパスで始まるように指示します。
  3. コードで A パラメータを次のように設定します$path = !empty($_GET['a']) ? $_GET['a'] : '';

このようにすることで、次の利点が得られます。

mysite.com/someextension => あなたのurl = someextension

直接の URL でアセットをヒットできます。mysite.com/public/css/style.css

于 2012-08-03T16:31:00.123 に答える