2016-10-19 9 views
1

私は間違った場所を探しているに違いありませんが、これはよくある問題ですが、何も見つかりませんでした。特定のURLを除いて新しいドメインにmod_rewrite

私はすべてのURLをdomain1.comからdomain2.comを除いて書き換えようとしています。そのためには、すべてをそのまま維持したいと考えています(domain1.com/admin/xxxxxxに留まることを意味します)。

RewriteCond %{HTTP_HOST} ^domain1\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain1\.com$ 
RewriteCond %{REQUEST_URI} !^/(admin) [NC] 
RewriteRule (.*) http://www.domain2.com [R=301,L] 

しかし、domain1.com/adminはdomain2.com/adminにリダイレクトされます - 私は間違っていますか?

TIA!

答えて

1
これにあなたのルールを変更し

RewriteCond %{HTTP_HOST} ^(?:www\.)?domain1\.com$ [NC] 
RewriteCond %{THE_REQUEST} !\s/+admin[/?\s] [NC] 
RewriteRule^http://www.domain2.com [R=301,L] 

をここTHE_REQUESTを使用して、他のルールがindex.phpまたはいくつかの他のフロントコントローラにREQUEST_URIを変更することがありますよう。

+0

ありがとうございますが、私はRewriteCond%{THE_REQUEST}を試しました!^/admin [NC]、さらにRewriteCond%{THE_REQUEST}!^ admin [NC](ちょうど安全です)、私はまだdomain2.comにリダイレクトされていますもうdomain2.com/adminにはありません)。 – Analog

+0

'THE_REQUEST'は' GET /index.php?id=123 HTTP/1.1'のような値を持っているので、 '^'のように使うことはできません。あなたは*のために私の更新されたルールを使用することができます*安全な部分だけ – anubhava

+1

ありがとうございますanybhava!それはうまくいった!感謝します! – Analog

関連する問題