2012-04-23 10 views
1

リクエストに引数が含まれていても、すべてのリクエストを特定のディレクトリにリダイレクトしようとしています。例えば、私はGoogleが古いブログからの古いリンクを404と表示しているのを見ていますが、リンクはexample.com/stuff/?argsのように見えます。したがって、私は/に行くリクエストをリダイレクトする必要があるように感じますstuff /と引数を取り除きます。なぜなら、それらが残っていれば、彼ら自身の404を生成するからです。ディレクトリへのリクエストのリダイレクト方法と.htaccessを使用したargsの削除

ご協力いただければ幸いです。おかげさまで

答えて

0

httpd.confを通じてのmod_rewriteと.htaccessを有効にしてから.htaccessDOCUMENT_ROOT下のディレクトリにこのコードを配置:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteRule ^stuff/?$ new-dir? [L,R,NC] 
+0

予想通り、これはリダイレクトが、それは引数が渡​​さに。私はすべての議論を取り除こうとしている。だから、読み取るためにそれを修正:? オプション+ FollowSymLinksを-MultiViews #ターンのmod_rewriteを RewriteEngineに でRewriteBase/ のRewriteRule ^もので/新しい/ [L、R、NC] を$しかし、それはまだ引数を渡します。 – fohryan

+0

ターゲットURLの '?'はクエリ文字列を取り除きます。ですから、 'new-dir?'(私の答えのように)や 'new-dir /? 'は元のクエリ文字列を削除するべきです。 – anubhava

0

かmod_aliasを使用して:

RedirectMatch ^/stuff/?.* /new/? 
+0

これは、このエラーがスローされます:「ページがFirefoxは、サーバーが完了することはありません方法で、このアドレスに対する要求をリダイレクトしていることを検出した適切 をリダイレクトされていません。」 – fohryan

関連する問題