重定向停放域名(htaccess)

时间:2010-07-09 21:11:25

标签: apache .htaccess mod-rewrite redirect dns

我有两个域名,格式为foo.com和foo.net。我目前在.htaccess中有以下内容将非www重定向到www:

# Rewrite URL to force WWW
  RewriteCond %{HTTP_HOST} ^[^.]*\.[^.]*$
  RewriteCond %{SERVER_PORT} !=443
  RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

  RewriteCond %{HTTP_HOST} ^[^.]*\.[^.]*$
  RewriteCond %{SERVER_PORT} =443
  RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

  RewriteCond %{HTTP_HOST} ^www\.(.*\.[^.]*\.[^.]*)$ [NC]
  RewriteCond %{SERVER_PORT} !=443
  RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

  RewriteCond %{HTTP_HOST} ^www\.(.*\.[^.]*\.[^.]*)$ [NC]
  RewriteCond %{SERVER_PORT} =443
  RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]

但是,我想将以.net结尾的网址重定向到.com,包括子域名。 例子:

  

foo.net - > foo.com
  www.foo.net - > www.foo.com
  foo.net/bar - > foo.com/bar
  sub.foo.net - > sub.foo.com
  sub.foo.net/bar - > sub.foo.com/bar

我以前在另一个网站上有这个,但是几年前我就没有.htaccess了。有人知道一个简单的方法吗?

编辑:这是.htaccess的其余部分:

# BEGIN WordPress
#
  RewriteEngine on
#
# Unless you have set a different RewriteBase preceding this point,
# you may delete or comment-out the following RewriteBase directive
# RewriteBase /
#
# if this request is for "/" or has already been rewritten to WP
  RewriteCond $1 ^(index\.php)?$ [OR]
# or if request is for image, css, or js file
  RewriteCond $1 \.(gif|jpg|png|php|ico|css|js)$ [NC,OR]
# or if URL resolves to existing file
  RewriteCond %{REQUEST_FILENAME} -f [OR]
# or if URL resolves to existing directory
  RewriteCond %{REQUEST_FILENAME} -d
# then skip the rewrite to WP
  RewriteRule ^(.*)$ - [S=1]
# else rewrite the request to WP
  RewriteRule . /index.php [L]
#
# END wordpress 

# Rewrite URL to force WWW
   -(see top of post)-

2 个答案:

答案 0 :(得分:1)

忽略这是迄今为止我写过的最恶魔的重写规则集这一事实,这令人惊讶地似乎在一个漂亮,紧凑的包装中照顾你现在拥有的东西,加上你想要的东西。

如果您有任何问题,请告诉我:

RewriteCond %{HTTPS} =on
RewriteRule .* - [E=RW_HTTPS:s]

RewriteCond %{HTTP_HOST}     ^www\.(.*\.[^.]*\.[^.]*)$ [NC,OR]
RewriteCond www.%{HTTP_HOST} ^(www\.[^.]*\.[^.]*)$
RewriteRule .* - [E=RW_THOST:%1]

RewriteCond %{ENV:RW_THOST}  ^(.*)\.(net|com)$         [NC,OR]
RewriteCond %{HTTP_HOST}     ^(.*)\.net$               [NC]
RewriteRule .* http%{ENV:RW_HTTPS}://%1.com%{REQUEST_URI} [R=301,L]

答案 1 :(得分:0)

要将停放的域重定向到具有特定 URL 的主网站域,请尝试在您的 htacess 文件中使用以下代码:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^parked-domain.com [OR]
RewriteCond %{HTTP_HOST} ^www.parked-domain.com
RewriteRule ^(.*)$ https://main-domain.com/custom-url [L,R=301]