重写使用Apache URL重定向根域(Rewrite URL using Apache for r

2019-09-16 08:13发布

我有这样的情况,我想使用下面的场景重定向我的域名。 能否请您指点,如果这可以在Apache中使用重写规则来实现?

我想使用重定向所做的任何调用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重写规则此规则? 我还使用PHP,所以使用PHP的解决方案将是有效的了。

Answer 1:

这是与您现有的和新的代码合并后的.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]


Answer 2:

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


Answer 3:

这个例子看起来像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]


文章来源: Rewrite URL using Apache for redirecting root domain