0

私の .htaccess ファイルは IE では機能しません。FireFox と Chrome では正常に機能しますが、IE では画像が読み込まれず、リンクが正しく機能しません。CSS は正常に動作し、すべての PHP シームも同様に動作します。

URL から 2 つの GET 変数をプルする必要があることと関係があると確信しています。これは、変数を 1 つだけプルする必要がある場合に問題なく機能するためです。とにかくここに私のコードがあります

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?([^/]+)/([^/]+)/?$ /website/index.php?id=$1&c=$2

助けてください、私はこれに対する解決策を何時間も探していました。

4

2 に答える 2

0

たとえば、画像とリンクを除いてすべてが機能しています。たとえば、ベースURLがlocalhost / website / 148 / categoryであり、localhost / website / 149 / categoryに移動するリンクをクリックすると、localhost /website/に移動します。 148 / category / 149/category。つまり、シームするURLに追加するだけです。

これは相対/絶対URIの問題であり、書き換えルールとは何の関係もありません。タグを使用<base>するとこれが修正されるはずですが、IE8のバージョンにはバグがあり、前にFQDNがないと無視されます。たとえば次のようになります。

<base href="http://localhost/website/">

(それで問題が解決するかどうかさえわかりません)。

そして、はい、それは他のすべての参照の前に、そして<head> </head>タグの中にある必要があります。これを修正するための他の唯一の手段は、すべてのリンクを相対URIではなく絶対URIに変更することです。

于 2012-09-16T02:59:52.393 に答える
0

書き換え条件がブラウザに依存する方法がわかりません..あなたの問題はどこかにあるに違いありません。

ルールから先頭の / を削除してみてください:

RewriteRule ^([^/]+)/([^/]+)/?$ /website/index.php?id=$1&c=$2
于 2012-09-16T02:21:43.243 に答える