2012-08-02 75 views
0

我google至少有3个小时,并尝试所有的例子在堆栈溢出和其他论坛。 有谁知道如何使用.htaccess(重定向或重写)能够将所有流量从一个域重定向到另一个域,而不会在.com之后传递任何内容?重定向整个请求到新的域名,没有后续的原始请求.com后的任何内容

我有一个老域名:

http://www.olddomain.com 

我想所有的请求到该域重定向到一个特定的URL

http://www.newdomain.com/new/directory/ 

我试图重定向的相当多的种类和重写规则.htaccess,但如果我提出如下请求:

http://www.olddomain.com/some/directory/ 

重定向总是出现在新域如:

http://www.newdomain.com/new/directory/some/directory/ 

重定向是等待重定向的URI后。

我试过添加?在新网址的末尾,这并没有帮助。

这是我的一些重定向。 (域名更改为保护无辜者)

RewriteEngine on 

#RewriteRule^http://www.newdomain.com/new/directory/ [R=301,L] 
#RewriteRule^http://www.newdomain.com/new/directory/? [R=301,L] 
#RewriteRule /?$ http://www.newdomain.com/new/directory/? [R=301,L] 
RewriteRule ^([^/\.]+)/?$ http://www.newdomain.com/new/directory/? [R=301,L] 

我尝试了重定向命令,以及...

Redirect 301/http://www.newdomain.com/new/directory/? 

这些都不似乎删除/一些/目录/和自顾自地重定向到

http://www.newdomain.com/new/directory/some/directory/ 

任何想法将非常感激。

回答

0

尽量只:

RedirectMatch 301^http://www.newdomain.com/new/directory/? 

但是,如果你宁愿使用mod_rewrite,它看起来像你是非常接近你的规则,它只是需要有正则表达式匹配什么

RewriteRule^http://www.newdomain.com/new/directory/? [R=301,L] 

有一个警告,如果这两个域实际上托管在同一个服务器上,同一个文档根,并且你将把它放在一个htaccess文件中,那么你需要在上面添加一个额外的检查RewriteRule为主机:

RewriteCond %{HTTP_HOST} olddomain.com$ [NC] 
相关问题