2012-02-08 14 views
-1

書き換えをお願いします。apache mod書き換え

私はドメインhttp://www.example.comを持っています。ルートには複数のフォルダがあります。 http://www.example.com/folder1/public/index.phphttp://www.example.com/folder1に書き換えたい

私は.htaccessでこれを行う必要があるので、メインのApache設定にアクセスできません。可能であれば、私は.htaccessfolder1の中に入れて、ルートに入れないようにします。

ご協力いただきありがとうございます。

答えて

0

思考するサルは近いです。試してみてください:

Options +FollowSymLinks -Indexes -MultiViews 
RewriteEngine On 
RewriteBase /folder1 

RewriteRule ^(?!public/)(.*) public/$1 [L] 

あなたはRewriteBaseを必要としますが、ルールの再帰的な評価を停止する必要があります。 (?!public/)ビットは、既にpublic/で始まるものとは一致しません。あなたは.htaccessルールでこの種のガードが必要です。

+0

RewriteBaseは '/ folder1'ですか? –

+0

@Ulrich、この修正に感謝します。 -/foo'は私のテストVM上でこのソリューションを検証したディレクトリでした:oops::-) – TerryE

0

folder1からfolder1/publicへのリクエストをリダイレクトしようとしています。 つまり、実際のURLはhttp://www.example.com/folder1/public/index.phpになりますが、あなたのURLはhttp://www.example.com/folder1のようになります。

まず最初に、あなたのhrefでhttp://www.example.com/folder1を使用し、これをhttp://www.example.com/folder1/public/index.phpに書き直す必要があります。

.htaccessあなたのフォルダにあるfolder1に下記を追加してください。

Options +FollowSymLinks -Indexes -MultiViews 
RewriteEngine On 
RewriteRule ^(.*)$ public/$1 [L] 
+0

ありがとう、doesntはうまくいくようです。 – agh

+0

あなたは何を得ていますか? – ThinkingMonkey

+0

エラーが発生していない場合、ルールは機能していないようです。私はまだURLにそれを追加することによってパブリックフォルダにアクセスすることができます – agh

関連する問題