htaccess重定向不重定向index.html页面

时间:2014-03-27 14:49:48

标签: wordpress .htaccess redirect

我有一个客户端项目需要将特定域名重定向到另一个目录,而该站点的其余部分是标准的WordPress安装。

我的重定向似乎写得正确,并且位于htaccess文件的最顶层:

Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^old_domain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.old_domain\.com$ [OR]
RewriteRule ^/?$ "http\:\/\/www\.new_domain\.com\/directory\/" [R=301,L]

问题在于它不会重定向http://old_domain.com/index.html

相反,它将用户发送到WP的404页面。

我做错了什么?

更新

在收到其他有用的建议后,我认为还有一些额外的背景。

这是一个房地产项目。主WP站点(new_domain.com)用于公寓销售,他们有一个单独的外部站点用于公寓租赁。

他们有第三个遗留域名(old_domain.com),他们想要重定向到门户网站页面(new_domain.com/directory),用户可以选择购买或租用,然后前往相应的网站。

因此,我们不希望重定向所有请求,只是使用旧域的任何请求。

2 个答案:

答案 0 :(得分:1)

以下规则应该有效。它应该将所有请求从www.old_domain.comhttp://old_domain.com重定向到http://www.new_domain.com/directory

RewriteEngine On
RewriteRule ^(.*)$ http://www.new_domain.com/directory/$1 [R=302, L]

当您确定重定向有效时,将302更改为301

编辑:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^old_domian.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.old_domain.com$
RewriteRule (.*)$ http://www.new_domain.com/directory/$1 [R=302,L]

答案 1 :(得分:0)

您必须拥有RewriteEngine On。你可以巩固这两个www。和非www。试验。不要在最后一次RewriteCond之后输入[OR]。

RewriteCond %{HTTP_HOST} ^(www\.)?old_domain\.com$

new_domain.com是"附加组件"到old_domain.com,以便两者都通过相同的.htaccess文件,但使用不同的域名?或者这些物理上是独立的系统,有自己的.htaccess文件?也就是说,哪些URL将通过此.htaccess文件传递?

您当前的代码会将old_domain.com上的任何重定向到new_domain.com上的/directory/<original URI+Query String>,并告诉搜索引擎和用户更新其条目和书签。这就是你想要的吗?