2012-04-23 8 views
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] 

を含めるようにURLを書き換えるこの.htaccessファイルは、私は(SOMETHINGパスを)それを拾うし、適切なコンテンツ(ビュー)を表示することができindex.php?path=SOMETHINGにすべてをリダイレクトします。htaccessファイルは - CSSやJS

問題は.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(どのようなパスでも)に設定するにはどうすればよいですか?だから私ははまだ私の 'パス'変数にアクセスする必要がありますが、私のファイルを含めるときにはすべてがウェブルートを指し、/some/...パスではありません。

+0

css文書とjs文書をどのように組み込むかを少し詳しく説明できますか?また、cssが指定されたURLとは独立した1つのファイルである場合、なぜそれを動的にするのでしょうか? – Honoki

答えて

2

問題は、CSS/js/imageファイルへのリンクを書き込む方法にあります。代わりに、現在のページに相対URLを使用してCSS/JS /画像を含むの

href="/css/style.css" 
:あなたはルート( 予告スラッシュ)に相対URLを使用する必要があります
href="css/style.css" 

を使用するか、絶対URLを使用します(これにはドメイン名が含まれます)。

これは、サイトがニースURL/URL書き換えを使用する際にウェブサイト(HTMLパーツ)を設計する際の典型的な間違いです。これは、書き換えエンジンがURLを壊すようになったことです。そのようなURLを送信するブラウザ(/something/css/style.css)が最初です。

+0

私と一緒に働いていない –

関連する問題