我有这种情况,我希望使用以下方案重定向我的域。如果可以使用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.com或http://domainname.com,我希望他们重定向到http://dname.com
如何在Apache中使用RewriteRule实现此规则? 我也使用PHP,因此使用PHP的解决方案也是有效的。
答案 0 :(得分: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]
答案 1 :(得分:1)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://domainname.com/$1 [R=301,L]
答案 2 :(得分: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]