2016-07-21 9 views
1

返信方法404 errorは、htaccessによって2番目の/の後に余分な文字を含むすべてのURLを返します。二重スラッシュの後に余分な文字を含むURLのモディリライト

e.g1:

http://www.example.com/blah-blah/(2番目/後に余分な文字)をリダイレクトしない

e.g2:

http://www.example.com/blah-blah/blah-blahリダイレクト404

e.g3へ

http://www.example.com/blah-blah/blah-blah/ 404へのリダイレクト404

e.g4:

http://www.example.com/blah-blah/blah-blah/blah-blahリダイレクト404

e.g5へ:

http://www.example.com/blah-blah/blah-blah/blah-blah/リダイレクト404

に私はこれを試みたが、e.g3 & e.g5(と連携していませんスラッシュで終わるURL):

ErrorDocument 404 /404 
RewriteBase/
RewriteRule ^[^/]+/.+ - [R=404,L] 

答えて

1

equestが第二のスラッシュの後にいくつかの文字がある場合のみ、あなたはこの書き換えルールに

ErrorDocument 404 /404 
RewriteBase/
RewriteRule .*/.+ - [R=404,L] 

PSを必要とする:あなたは正規表現の後にダッシュを使用しているとき、それはファイルシステムへと試合を渡すと言います。

EDIT:あなたは(前にI編集するRewriteRule)パターンの最初のスラッシュを削除する必要があるので、このパターンは/.*/.+次の例で一致したが、私はでRewriteBaseディレクティブを忘れてしまった

  • /何とか-blah/=>
  • /何とか-何とか/何とか-何とか=>マッチ
  • /何とか-何とか/何とか-何とか/ =>マッチ
  • /何とか-何とか/何とか-何とか/ blah-と一致しませんblah/=>マッチ

PS:私は私の編集では、私は私のテスト内でRewriteBaseディレクティブを忘れて言ったように、あなたの書き換えがrewrite-rule-tester

+1

I固定パターンを動作するかどうかをチェックするために、このツールを使用することができ、これは、今で動作するはずです。 – Rebangm

+0

あなたのコードから404が返されます(例:/ blah-blah/ – Smith

+1

)。それは異常です。ルールテスターを書き直すテストはありますか?/blah-blah /をキャッチする別のRewriteRuleがありますか? – Rebangm

関連する問題