1

クエリ文字列をディレクトリ構造として変更するために、htaccessファイルに次のルールを書いています

 RewriteRule ^dashboard/([0-9]*)?$ dashboard.php?user_id=$1

URLを書き換えるために使用されます。正常に動作しています

localhost/project/dashboard // (dashboard.php)

すべてのリンクは

localhost/project/css/style.css
localhost/project/js/script.js

しかし、IDを追加すると

localhost/project/dashboard/1 // (dashboard.php?user_id=1)

すべてのリンクを次のように変更します

localhost/project/dashboard/css/style.css
localhost/project/dashboard/js/script.js

dashboardすべてのリンクに を追加する理由

4

2 に答える 2

1

それはあなたが彼にそうするように「言った」からです。

RewriteRule ^dashboard/([0-9]*)?$ dashboard.php?user_id=$1
         //  ^here you tell him to print that "dashboard"

もちろん、他のリンクも機能します-そのルールにそれらを一致させることさえしません。

ここで何かを見つけました。タイトル「Strip Query Strings」までスクロールします。そこで、これを行うように言われます:

RewriteCond %{QUERY_STRING} example=
RewriteRule (.*) http://www.domain.com/$1? [R=301]

もちろん、その URL を自分のものに変更してください。

于 2013-03-28T13:55:44.550 に答える
1

html ファイルで style.css はどのように参照されていますか?

この href="css/style.css" のようにすると、HTML は書き換えていることを認識せず、/1 をフォルダーと見なし、dashboard/css/style.css を調べます。

URL 書き換えを使用するシステムは通常、これを回避するためにスタイルとスクリプトへのすべてのパスを書き込む必要があります。したがって、この href="http://localhost/project/css/style.css" のようにスタイルを参照する必要があります

本番環境と開発環境がある場合、次のような変数があると役立ちます

if($SERVER['SERVER_NAME']=='localhost'){
  $BASE_URL = "http://localhost/project/"
}else{
  $BASE_URL = "http://mydomain.com/"
}

css、スクリプト、または画像への呼び出しの前にそれを置きます;)

于 2013-03-28T14:02:07.690 に答える