0

I am attempting to redirect all requests of the main stylesheet called styles.css to the minify script of min/g=css so that I may be able to work on the CSS file live and just have the server use redirect to the minify script.

Basically, this in my html file...

<link rel="stylesheet" href="css/styles.css" type="text/css">

turns into this

<link rel="stylesheet" href="min/g=css" type="text/css">

when the server requests it.

Here is my attempt so far, but it doesn't seem to be working at all. The regular css file just loads on the server..

RewriteRule ^css/styles\.css$ min/g=css

Along these same lines, I also have a fear about when I start building subdirectory pages. Does this rewrite rule need to be an "absolute path"? Thanks for any help everyone!

4

1 に答える 1

1

これと同じように、サブディレクトリ ページの作成を開始する時期についても懸念があります。この書き換えルールは「絶対パス」である必要がありますか? みんな助けてくれてありがとう!

書き換えエンジンは、htaccess ファイルでルールを適用するときに URI の先頭のスラッシュを取り除きますが、ルールがサーバー/仮想ホスト構成にある場合は、先頭のスラッシュが必要です。ターゲット (min/g=cssルールの一部) も絶対パスである必要はありませんが、先頭にスラッシュがある場合、Apache はそれをベース (通常はドキュメント ルート) に適用します。先頭にスラッシュがない場合、apache は、ファイル パスまたは URI パスのどちらを意味するのかを推測しようとしますが、推測が間違っている場合もあります。ディレクティブを含めるRewriteBaseと、Apache は常にそれをベースとして使用します。

したがって、ここでの質問は次のようになります。これらのルールはどこにありますか? htaccess ファイルでは、ベースの問題だけが残ります。サーバー/仮想ホスト構成にある場合は、ベースを知っている必要があり、正規表現に先頭のスラッシュを追加する必要があります: ^/css/styles\.css$. または、安全でオプションにすることもできます:^/?css/styles\.css$

さて、ベース。ベースは、相対パスが追加される場所です。あなたのCSSリンクはこれcss/styles.cssです。そのページが、たとえばこの URL: からロードされた場合http://domain.com/some/path/mypage.htmlベースhttp://domain.com/some/path. 相対パスの解像度は ですhttp://domain.com/some/path/css/styles.css。この例では、ルールは次を/some/path指すディレクトリに移動する必要があり、以下が必要です。

RewriteBase /some/path/

あなたのルールの上に。それ以外の場合は、そのベースをルールの正規表現とターゲットに単純に追加できます。

RewriteRule ^/?some/path/css/style\.css$ /some/path/min/g=css [L]
于 2012-08-29T07:39:26.963 に答える