2011-07-23 15 views
5

私は、class/db内にjsfiddle.netの保存されたURLと同様の機能を作成するために、mod_rewriteをurlから最初のサブディレクトリの文字列にしようとしています。スクリプトは正常に動作し、書き直しを行います。mod_rewriteを末尾にスラッシュで区切ってCSS/IMG/SCRIPTSのパス

URLの

http://jsfiddle.net/RyEue/ 

これは罰金(負荷すべてのCSS、スクリプトなど)を動作します:

http://www.domain.com/787HHJ2 

これは私がトリックを行い、過去に使用されてきたものです。

問題は最後のスラッシュ、スクリプト、CSSなどの緩いパスで終わるURLです。

http://www.domain.com/787HHJ2/ 

書き換えスクリプト:これはでRewriteBaseに関係している場合

DirectoryIndex index.php index.html 
Options +FollowSymlinks 
RewriteEngine On # Turn on the rewriting engine 
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{QUERY_STRING} !. 
RewriteRule ^.+/?$ index.php [QSA,L] 

わからないが、私は複数の方法を試してみました。

PS。運行なしに絶対パス(例:src = "/ img/theimage.jpg")に設定しようとしました。

+0

ルールは問題ありません。何が起こっているのかを正確に見るには、書き換えデバッグ( 'RewriteLogLevel 9')を有効にして、書き換えログをチェックしてください。 – LazyOne

+0

@LazyOne、あなたの権利。できます。問題は、それがCSSのスクリプトパスを壊すことです。 – Codex73

+1

質問を明確にしました。問題はCSS、スクリプト、画像、その他がtrailing /を使用して壊れていることが最大の問題です。 – Codex73

答えて

5

1を脱出してみCSS /画像/ JSなど(スラッシュ付き)ルートフォルダへのリンクの相対:/styles/main.css

2.現在の前に、これらのrulsの1を追加します。 1:

# do not touch files with .css/.js/.jpg etc extensions 
RewriteRule \.(css|js|jpg|png|gif)$ - [L] 

または

# do not touch any resources in images/css/js folders 
RewriteRule ^(images|css|js)/ - [L] 

3.ブラウザのキャッシュをクリアしてから再起動します(書き換えルールが修正されたときにブラウザがキャッシュされたページ/リソースを表示することがあり、混乱を招くことがあります)。

+0

上記の答えで私は問題を解決することができました。 rootへの相対パスとローカル仮想ホストの設定を組み合わせることで、すべてが完全に動作するようになりました。 – Codex73

0

あなたが持っていることを確認してください

RewriteRule ^.+\/?$ index.php [QSA,L] 
関連する問題