2011-01-30 3 views
8

私のルートには、/dev/liveの2つのディレクトリがあります。htaccess RewriteBase

これらのディレクトリ内のすべてのコンテンツには、/css/style.cssまたは/js/home.jsなどの相対パスがあります。

相対パスが/live/css/style.cssまたは/dev/css/style.cssになるようにhtaccessを使用してルートディレクトリを変更したい場合は、使用しているサイトのバージョンによって異なります。

Iは/liveディレクトリ内に位置した.htaccessに次のコードを使用して試みた:

RewriteEngine on 
RewriteBase /live/ 

IもRewriteBase /public_html/live/を用いて試みました。

ただし、サイトを表示すると、コンテンツパスはhttp://domain.com/live/css/style.cssではなく、まだhttp://domain.com/css/style.cssです。

誰にでもアイデアはありますか?

ありがとうございます。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC] 
RewriteCond %{HTTP_HOST} ^((www\.)?([a-z]+)\.)domain\.com [NC] 
RewriteRule ^((www\.)?([a-z]+)\.)domain\.us$ /live/index.php?tag=%3 [L,P] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC] 
RewriteCond %{HTTP_HOST} ^dev.((www\.)?([a-z]+)\.)domain\.com [NC] 
RewriteRule ^((www\.)?([a-z]+)\.)domain\.us$ /live/index.php?tag=%3 [L,P] 
+0

これは、生産と開発のサイトを切り替えるには正しいですか? 'http:// domain.com/live/css/style.css'の例は説明だけですか、外部URLにどのサイトがアクティブかを反映させたいのですか?後者の場合、なぜですか? – outis

+0

ええ、2つのファイルを切り替えることができ、相対ファイルパスを保持することができます。 – Kit

+0

"/"で始まるパスは相対パスではなく絶対パスです。書き換えルールを使用する際の問題点は何ですか? – outis

答えて

10

RewriteBaseあなたはURLが再びパスをファイルとして変換されますどのように問題を修正することができます:私は私のルートhtaccessの2つのディレクトリを向いて次のルールを持っていることを説明しなければならない 申し訳

EDIT >>。あなたが使っているものではありません。標準を使用してくださいRewriteRule

RewriteCond %{REQUEST_URI} !^/live 
RewriteRule ^(/?)(.*) /live/$2 
+0

返信いただきありがとうございます。 RewriteBaseを使用して/css/style.cssなどの相対ファイルパスを/live/css/style.cssに変更できますか? – Kit

+0

私がすでに言ったように、それはあなたが望むものではありません。 'RewriteBase'は、Apacheリクエスト処理の特定の段階で、URLパスとファイルパスをマッピングするためのものです。上記のリンク先のドキュメントを読んでください。 – outis