0
RewriteEngine on

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

RewriteCond %{REQUEST_URI} !(.*)\.(css|js|htc|pdf|jpg|jpeg|gif|png|ico)$ [NC]
RewriteRule ^(.*)$ index.php?path=$1 [QSA,L]

この.htaccessは、すべてをindex.php?path=SOMETHINGピックアップできる場所(SOMETHINGパス)にリダイレクトし、適切なコンテンツ(ビュー)を表示します。

問題は.css/.jsファイルを含めることです。

私がすべてを使用する場合は機能しwww.website.com/somethingます(cssパスは/css/style.cssのようであり、で検索していますwww.website.com/css/style.css)。しかし、フォルダ内www.website.com/something/2を検索しているため、すべてを使用するとクラッシュしwww.website.com/something/css/style.cssます。

毎回ルート(?)をwww.website.com(パスが何であれ)に設定するにはどうすればよいですか?したがって、「path」変数にアクセスできるはずですが、ファイルを含める場合は、すべてがWebサイトのルートを指し、/some/...パスではない必要があります。

4

1 に答える 1

2

問題は、css / js/imageファイルへのリンクを作成する方法にあります。

現在のページへの相対URLを使用してcss/js / imagesを含める代わりに:

href="css/style.css"

ルートを基準にしたURLを使用する必要があります(先頭のスラッシュに注意してください)。

href="/css/style.css"

または絶対URLを使用します(ドメイン名が含まれます-あまり好ましくないアプローチです)。

これは、サイトがニースURL / URL書き換えを使用している場合に、Webサイト(html部分)を設計する際の一般的な間違いです。これは-書き換えエンジンがURLを壊すようになった-/something/css/style.cssそもそもそのように()を送信するのはブラウザです。

于 2012-04-23T15:20:46.857 に答える