1

blog.domain.com/anypathからの訪問者がwww.domain.com/blog/anypathにリダイレクトされるように、.htaccessファイルにルールを書き込もうとしています。

以下に記述したルールは、blog.domain.comをdomain.com/blogにリダイレクトするだけのようですが、URLにblog.domain.com/pathなどのパスが含まれている場合は正しくリダイレ​​クトされないようです。

RewriteCond %{HTTP_HOST} ^blog\.* [NC]
RewriteRule .* http://www.domain.com/blog [L]

どんな助けでも大歓迎です。

4

2 に答える 2

1

これは()、変数を介して書き換えるキャプチャグループでパスをキャプチャしていないためです$1。それをリダイレクトURLに追加する必要があります。

RewriteCond %{HTTP_HOST} ^blog\.* [NC]
# Capture the full path into $1 and append it to the output URL
RewriteRule (.*) http://www.domain.com/blog/$1 [L,R=301]

これを永続的なリダイレクトにする場合はR=301[L,R=301]

いつものように、完全な詳細についてはmod_rewriteのドキュメントを参照し、実験にはこの巧妙な書き換えテスターを使用してください。

于 2013-03-24T13:07:58.923 に答える
0

をキャプチャREQUEST_URIしてパスに渡す必要があります。

RewriteCond %{HTTP_HOST} ^blog.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/blog/$1 [R=301,L]

これにより、ブログのサブドメインからのパスがキャプチャされ、正しいURLにリダイレクトされます。

たとえば、blog.domain.com/post/736/testにリダイレクトされwww.domain.com/blog/post/736/testます。

于 2013-03-24T13:08:21.960 に答える