2010-12-02 24 views
0

私のホスト上に同じディレクトリ "public_html"を指す複数のドメインがあります。
メインフォルダに.htaccessファイルがあり、ローカルに各ドメインを%{HTTP_HOST} mod_rewrite変数と同じ名前の特定のフォルダにリダイレクトします。これは、.htaccessファイルの内容であるサブディレクトリ内のディレクトリを動的に確認してください

:(例えばpublic_html/www.domain.com/からwww.domain.comをリダイレクト):それはディレクトリスラッシュディレクティブに来るとき、私は問題を抱えている

RewriteEngine On 
RewriteBase/
RewriteCond /%{HTTP_HOST}/#%{REQUEST_URI} !^([^#]+)#\1 
RewriteRule ^(.*)$ %{HTTP_HOST}/$1 [L] 


私はhttp://www.domain.com/folderのようなスラッシュせずに、ドメインのURLでフォルダにアクセスしようとすると、mod_dirはDirectorySlashを適用し、外部http://www.domain.com/www.domain.com/folder/

に私の要求をリダイレクトし、私はドメインディレクトリAFTER 301リダイレクトを適用しようとしたが、このようにリダイレクトします。

RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^(.*[^/])$ $1/ [R=301,L] 

しかし、これが機能するために、私は %{REQUEST_FILENAME}%{HTTP_HOST}「フォルダ」内に存在するかどうかを確認することができなければなりません。私はなくても、成功のために、次のことを試してみました: %{REQUEST_FILENAME}%{HTTP_HOST}と同じ名前のディレクトリ内になるディレクトリである場合、

RewriteCond /%{HTTP_HOST}/%{REQUEST_FILENAME} -d 
RewriteRule ^(.*[^/])$ $1/ [R=301,L] 

はどのようにして、動的に、確認することができますか?事前

答えて

0

おかげであなたは-dで作業する場合、あなたが絶対ファイルシステムのパスを提供する必要があります。だからこれを試してください:

RewriteCond %{DOCUMENT_ROOT}/%{HTTP_HOST}%{REQUEST_URI} -d 
RewriteRule ^(.*[^/])$ $1/ [R=301,L] 
関連する問題