时间:2016-07-06 09:44:07

标签: apache redirect

我在两个不同的域上有两个网站。一个在 domain.com 上,另一个在 domain.es 上。

我正在 domain.es 上关闭网页,但首先我必须将每个请求重定向到 domain.es domain.com 。这很简单,我已经使用RewriteCond& RewriteRule,就像这样:

www.domain.es / - 重定向至 - >的 www.domain.com /

但我现在遇到了问题。我还需要将一个特定页面从 domain.es 重定向到 domain.com ,如下所示:

www.domain.es/a_page / - 重定向到 - >的 www.domain.com/another_page /

我在使用这两个规则重定向时遇到问题,因为当apache检测到对 www.domain.es/a_page 的请求时,它会转到 www.domain.com / ,而不是我需要的特定页面。

我在虚拟主机中有这个:

RewriteCond %{HTTP_HOST} ^domain.es/a_page/ RewriteRule ^(.*)& http://www.domain.com/another_page/ [R=301,L] RewriteCond %{HTTP_HOST} ^domain.es/ RewriteRule ^(.*)& http://www.domain.com/ [R=301,L]

我有[L]标志,所以apache会stop processing rules,但这不起作用。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

RewriteCond %{HTTP_HOST} ^domain.es/a_page/

上面的行永远不会匹配任何内容 - 您要问主机是否等于domain.es/a_page/,这是一个主机以及一个路径。您只需要测试主机名,然后根据路径重定向,例如

RewriteCond %{HTTP_HOST} ^domain\.es
RewriteRule ^a_page/ http://www.domain.com/another_page/ [R=301,L]