2012-04-26 21 views
2

私は複数の古いドメインから新しいドメインにユーザーをリダイレクトするために.htaccessを使用しています。このような何か:.htaccessリダイレクトで "NOT"演算子を使用する方法?

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{HTTP_HOST} oldsite1.com 
RewriteRule ^(.*)$ http://newsite.com%{REQUEST_URI} [R=301,L] 

RewriteCond %{HTTP_HOST} oldsite2.com 
RewriteRule ^(.*)$ http://newsite.com%{REQUEST_URI} [R=301,L] 

RewriteCond %{HTTP_HOST} oldsite3.com 
RewriteRule ^(.*)$ http://newsite.com%{REQUEST_URI} [R=301,L] 

しかし、私はこのように、newsite.com以外の任意のドメインをリダイレクトするために、NOT演算子を使用することができれば知りたい:

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond != %{HTTP_HOST} http://newsite.com 
RewriteRule ^(.*)$ http://newsite.com%{REQUEST_URI} [R=301,L] 

はどうもありがとうございました!

答えて

1

公式マニュアル:http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond

あなたは間違った場所に!=を配置したPLUS %{HTTP_HOST}はだけなので何のプロトコルが存在しないはずのドメイン名が含まれています

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{HTTP_HOST} !=newsite.com 
RewriteRule ^(.*)$ http://newsite.com%{REQUEST_URI} [R=301,L] 
関連する問題