2012-01-03 11 views
3

特定のパスで始まるリクエスト以外のすべてのリクエストをリダイレクトしようとしています。Apacheは、特定のパスで始まるURL以外のすべてのURLを書き換えます。

例えば、

http://www.example.com/mypath1はがこれまでIVEは、それが働いてきてみました

をリダイレクトする必要があり、他の

すべてをリダイレクトするべきではありません

http://www.example.com/mypath2をリダイレクトするべきではありません好きな例外パスの1つだけを使用するE本:

RewriteRule ^(?!/mypath1/).*$ http://www.google.com/? [R=301,L] 

と、このような:

RewriteCond %{REQUEST_URI} !^/mypath1/.* [NC] 
RewriteRule ^.*$ http://www.google.com/? [R=301,L]` 

と、このような:

RewriteCond %{REQUEST_FILE} !^/mypath1/.* [NC] 
RewriteRule ^.*$ http://www.google.com/? [R=301,L] 

しかし、私がしようとすべてがちょうどすべての要求をリダイレクトしています。 誰でもこれを行う方法を知っていますか?

+1

私のvhost confに2番目のルール(REQUEST_URI付き)を置くと、期待通りに動作します。あなたは干渉しているどこか他のルールはないと確信していますか? –

答えて

1

私はこの問題を解決するために管理しましたが、後でApacheの設定でエラーページにリダイレクトされてしまい、すべてのリダイレクトがキャッチされました。

他の誰かが同様の問題を抱えている場合は、この問題を特定するのに役立つApache RewriteLogの使用をお勧めします。これを行うには、VHOSTに次のように追加してください:

RewriteEngine on 
RewriteLog "C:/devenv/Apache2/logs/rewrite.log" 
RewriteLogLevel 2 
関連する問題