2011-12-23 10 views
6

mod_rewriteのルールにはいくつかの問題があります。 要求URLがwww.example.com/dev/index.phpあるとき、私は例えば.htaccessはサブディレクトリからルートに書き換えます

www.example.com/* 

www.example.com/dev/* 

上の任意の要求を書き換えたい、応答がwww.example.com/dev/index.phpであるべきではなく、それはルートからだようなURLが見えるだけであること実際にはルートディレクトリのindex.phpを使用しています。

私は

RedirectMatch (^/dev/)(.*) http://www.example.com/$2 

に動作します。しかし、mod_aliasとIPアドレスの条件を適用することはできませんので、私はまだのmod_rewriteとソリューションを必要とmod_aliasを試してみました。

誰か知っている人はいらっしゃいますか?ありがとう。

答えて

8

どうやってこのようになりますか?

RewriteRule ^dev/(.*)$ $1 

これは、ルートフォルダにあるか、(.htaccessではなく)プライマリApache構成に適用する必要があります。

.htaccessリダイレクトに関する通常の規則が適用されます.、Options FollowSymLinks、およびAllowOverride FileInfoが含まれています。詳細はhttp://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteruleです。

+0

いいえ、運がいいわけではありません。特定の種類のファイルへのアクセスを阻止するために使用される他の規則と何か関係があるのだろうかと思います。だから私は 'RewriteBase /'のすぐ下の最初の行にこの新しい規則を入れましたが、まだ動作しません。 – vicch

+0

@vicch '[L]'フラグを追加する、つまりルールを 'RewriteRule^dev /(.*)$ $ 1 [L]'に変更して他のルールを処理しないようにしてください。 –

+0

残念ながら、 – vicch

関連する問題