0

Mod の書き換えがどのように機能するかはわかりましたが、新しい問題に遭遇しました。

htaccessコード

RewriteEngine On
RewriteRule ^([A-Za-z0-9-]+)/$ http://localhost/testblog/index.php?category=$1

私は今これを知っています: localhost/testblog/dogs/

等しい: localhost/testblog/index.php?category=dogs

ただし、index.php ファイルにリンクを張ると、<a href="dogs/"> Dogs </a>そのページ (localhost/testblog/dogs/) には、dogs/ という接頭辞が付いたスタイルシートが含まれるようになったため、スタイルシートは次のようになります。localhost/testblog/dogs/stylesheets/style.css

しかし、私がリンクすると、<a href="index.php?category=dogs"> Dogs </a>すべてがうまく機能します。localhost/testblog/stylesheets/style.css

.htaccessファイルを使用して同じものに等しいと思ったので、混乱していますか?

プレフィックスでこの問題を修正するにはどうすればよいですか? うまくいけば、私は適切に説明しました ありがとう

4

2 に答える 2

0

あなたの問題は、おそらくスタイルシートをリンクする方法にあると思います。あなたは /dogs/ に書き直していますが、あなたのスタイルシートは のようにリンクされていると思い<link href="stylesheets/style.css" rel="stylesheet" type="text/css">ます。そのため、ブラウザーで /dogs/ を指定すると、URL に関連するスタイルシートを読み込もうとします。/dogs/ はフォルダーのように見えるためstylesheets/style.css、現在の URL に追加するだけです。私の意見では、次のようなスタイルシートに完全にリンクするのが最善の策です。<link href="/testblog/stylesheets/style.css" rel="stylesheet" type="text/css">

于 2013-08-14T12:14:20.067 に答える
0

ジョナソンが言ったように、ブラウザは、アドレスバーに表示される URL に href を追加して相対リンクを計算します。これを変更するには、base タグが必要です

<base href="//localhost/testblog">

そのため、ブラウザは、href を base href に追加してリンクを計算します。

于 2013-08-14T12:21:40.143 に答える