1

パターンhost.com/*に対するすべてのリクエストをotherhost.com/*にリダイレクトできますか?

たとえば、host.com/page1に対するすべてのリクエストをotherhost.com/page1に書き換える必要があります

難しいのは、host.com自体(ホームページ)へのリクエストが書き直されないことです。

これは私がやろうとしたことですが
RewriteRule ^(.*)$ http://otherhost.com/$1 [R=301,L]
、ホームページを含むすべてのリクエストを書き直し続けています

どんな助けでも大歓迎

4

3 に答える 3

1

いくつかの条件を追加する必要があります:

RewriteEngine on
RewriteCond %{REQUEST_URI} !=/
RewriteCond %{REQUEST_URI} !^/index.html
RewriteRule ^(.*)$ http://otherhost.com/$1 [R=301,L]
于 2012-11-26T12:30:48.600 に答える
1

次の書き換えを使用できます。

RewriteEngine on
RewriteCond %{HTTP_HOST} =host.com
RewriteCond %{REQUEST_URI} !=/
RewriteRule . http://otherhost.com%{REQUEST_URI} [R=301,NE,L]

RewriteCond %{HTTP_HOST} =host.comホストがであるかどうかを確認しますhost.com

RewriteCond %{REQUEST_URI} !=/要求されたページが「インデックス」ではないかどうかを確認します。(これが「host.com自体(ホームページ)へのリクエストは書き直されない」という意味の場合)

R=301HTTP 301 Moved Permanentlyリダイレクト時にヘッダーを送信する必要があると述べています。

NE特殊文字をエスケープしてはならないと述べています。(例:?に逃げる%3f
これは重要です!これを指定しないと、多くのURLが間違ってしまいます。(たとえば、/blah.php?id=1にリダイレクトされますが/blah.php%3fid%3d1、これは間違っています。)

于 2012-11-26T12:40:57.133 に答える
0

これを試してください:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^(/index.html)?$
RewriteRule (.*)  http://otherhost.com/$1  [R=301,L]
于 2012-11-26T12:31:15.677 に答える