我有这样的情况,我想使用下面的场景重定向我的域名。 能否请您指点,如果这可以在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的解决方案将是有效的了。
这是与您现有的和新的代码合并后的.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]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://domainname.com/$1 [R=301,L]
这个例子看起来像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]