2011-12-18 15 views
0

私は書き換えルールに少し問題があります。私がしようとしているのはこれです。サブドメインとサブドメインのmod-rewriteサブドメイン

[名前] .domain.com /ファイル/へ[名前] .domain.com /ユーザー/ [名] /ファイル、

[名前]は、たとえば、サブドメイン名である "ニック" 。 重要な部分は、リクエストにサブディレクトリが含まれている場合にのみリダイレクトが行われることです。ファイル/。

例Googleでは、サブドメインからサブディレクトリへのリダイレクトとサブディレクトリから他のサブディレクトリへのリダイレクトに関連する例がありますが、それらの組み合わせは決してありません。

答えて

2

は、ドキュメントルートに.htaccessファイルにこれらのルールを入れてみてください:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com$ [NC] 
RewriteRule ^files/(.*)$ /users/%1/files/$1 [L] 

私はあなた/ユーザーでwwwを持っていなかったと仮定/ので、私は!^www\.条件を追加しました。 の場合はwww.domain.comへのリクエストで/ users/www /に行きたい場合は、その行を削除してください。

+1

いいえあなたのために...たぶん 'RewriteRule'の最後に' QSA'フラグがあります(それはすべて香りが何をしたいかによって決まります) –

+0

**?** isnのときにクエリ文字列が自動的に付加されますルールの対象には存在しません。ルールのターゲットが '/ users /%1/files/$ 1?redir = no'か何かであれば' QSA'が必要です。 –

+0

私は知っていますが、 '?'の後ろにパラメータを持つ他のURLはいくつかあるとします。このルールを通過する:そのパラメータは失われます。だから、すべてのアロマは何をしたいのかによって異なります。以前のすべてのパラメータを削除してから新しいものを適用するか、**または**古いものを保持して新しいものとミックスしてください。 –