2016-04-07 4 views
2

私のhtaccessファイルに簡単なRedirectを持っている:このリダイレクトはなぜ適用されますか?

Redirect 301 /foobar /johndoe/foobar 

残念ながら、このURLは:

/foobar/barfooもリダイレクトされます - なぜですか?私の理解では、Redirectコマンドを使用すると、/foobarだけがリダイレクトされるはずです。

私は結局のところ、これはRewriteRule

+0

ドキュメントは期待通りに動作するはずであることを確認しているようです:https://httpd.apache.org/docs/current/mod/mod_alias.html#redirectすべての例では引用符を使用しています( 'Redirect 301 '/ foobar" ... ") –

+0

@Pekkaは本当に笑いますか?私はこれが私のスープに塩を注ぎ込むと感じます: 'URL-Pathで始まるリクエストはリダイレクトリクエストを返します.' – Alex

+0

' RedirectMatch'も動作します:) – Alex

答えて

1

を書くよりも、より快適であると感じ、Redirectは(少なくとも私のテストが言うチェックするURLは、現在のパスの先頭にある場合にだけチェックするようで、そのドキュメントは100%明確ではありません)。

しかし、(それはやり過ぎかもしれないので)RewriteRuleを使用して回避するために、簡単なRedirectMatchも動作します:

RedirectMatch 301 "^/foobar$" "/johndoe/foobar" 

私はまだ、これは「正規表現」せずに解決することが可能とイマイチかどうか、追加のアドバイスに感謝するでしょうし、 /またはRewriteRule

関連する問題