2

我有这种情况,我想使用以下方案重定向我的域。如果这可以在 Apache 中使用 RewriteRule 实现,您能否提出建议?

我想重定向使用http://www.domainname.com/url进行的任何调用以重定向到http://domainname.com/url

我能够使用以下重写规则实现上述目标

# BEGIN WithoutWWW
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domainname\.com$ [NC]
RewriteRule ^(.*)$ http://domainname.com/$1 [R=301,L]
# END WithoutWWW

如果有人试图访问http://www.domainname.comhttp://domainname.com,我希望他们重定向到http://dname.com

如何在 Apache 中使用 RewriteRule 实现此规则?我也在使用 PHP,所以使用 PHP 的解决方案也是有效的。

4

3 回答 3

2

这是您的 .htaccess 与现有代码和新代码的组合:

RewriteEngine on

# redirect domainname.com/ or www.domainname.com/ to dname.com/
RewriteCond %{HTTP_HOST} ^(www\.)?domainname\.com$ [NC]
RewriteRule ^$ http://dname.com [R=301,L]

# append www to domainname.com    
RewriteCond %{HTTP_HOST} ^www\.domainname\.com$ [NC]
RewriteRule ^ http://domainname.com%{REQUEST_URI} [R=301,L]
于 2012-04-04T19:11:07.907 回答
1
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://domainname.com/$1 [R=301,L]
于 2012-04-04T18:47:33.610 回答
0

该示例看起来像 mod_rewrite。使用 mod_rewrite 你可以这样做:

# BEGIN WithoutWWW
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domainname\.com$ [NC]
RewriteRule ^(.*)$ http://dname.com/$1 [R=301,L]
# END WithoutWWW

你可能想看看http://www.workingwith.me.uk/articles/scripting/mod_rewrite

根据您的评论,您希望以不同的方式重定向根目录,以便我们可以这样做:

RewriteEngine on
#www.domainname.com & domainname.com -> dname.com
RewriteCond %{HTTP_HOST} ^(www\.)?domainname\.com$ [NC]
RewriteRule ^$ http://dname.com/ [R=301,L]

#www.domainname.com/[url] -> domainname.com/[url]
RewriteCond %{HTTP_HOST} ^www\.domainname\.com$ [NC]
RewriteRule ^(.*)$ http://domainname.com/$1 [R=301,L]
于 2012-04-04T18:44:47.793 回答