2

mod rewrite を使用して、フォルダー内のパラメーターを持つファイルにサブドメインをリダイレクトしようとしています。

Web サイトはルートのフォルダー /new にあります。

私の .htaccess は現在(ルートに配置されています)

RewriteEngine on
RewriteCond %{HTTP_HOST}   ^[www\.]*new.mydomain.com [NC]
RewriteCond %{REQUEST_URI} !^/new/.*
RewriteRule ^(.*) /new/index.php?cust_id=1807

これは機能しており、パラメーターを使用してブラウザーを適切なファイルにリダイレクトしますが、すべての css、js、および画像リンクが壊れます。絶対パスを使用するか、ベースパスを設定するとこれを簡単に解決できることはわかっていますが、相対パスを使用し続けてこれを機能させたいと思います。

例: ソースは次のように css にリンクされます: http://new.mydomain.com/css/file.cssですが、 http ://new.mydomain.com/new/css/file.cssである必要があります。

前もって感謝します!

編集: css と画像ファイルを除外しても、これらは /new/css などにあるため、これは解決されません。

4

2 に答える 2

0

編集:あなたのフィードバックに基づいて

RewriteEngine on
# Redirect css,js,img to /new/(css,js,img) with a 301
RewriteCond %{HTTP_HOST}   ^[www\.]*new.mydomain.com [NC]
RewriteCond %{REQUEST_URI} ^/(css|js|img)/.*
RewriteRule ^(.*)$ /new/$1 [L,R=301]

# then redirect anything that's not already /new/ to the page you want
RewriteCond %{HTTP_HOST}   ^[www\.]*new.mydomain.com [NC]
RewriteCond %{REQUEST_URI} !^/new/.*
RewriteRule ^(.*) /new/index.php?cust_id=1807

これは私が持っている限られた情報に基づいています。以下の私のコメントを参照してください。

于 2012-12-09T18:47:32.953 に答える
0

rewriteCond をもう 1 つ追加してみてはどうでしょうか。何かのようなもの...

RewriteCond %{REQUEST_URI} !^.*\.(css|js|jpe?g|png|gif)$

これにより、これらのサフィックスを持つすべてのファイルが書き換えから除外されます。

ところで、これ[www\.]*はあなたの最初の RewriteCond では正しくないように見えると思います...これは、「w または w または w または が 0 回以上出現する」ことを意味します。したがって、実際には何も役に立ちません。

于 2012-12-09T18:53:45.090 に答える