2016-07-15 68 views
1

我正在寻找一种方式来整个网站重定向到一个单独的域。我想在httpd.conf文件中执行此操作。例如VirtualHost我看起来像:重定向所有URL到一个页面在httpd.conf

<VirtualHost xx.xx.xx.xx> 
ServerName website.com 
ServerAdmin [email protected] 
ScriptAlias /cgi-bin/ /usr/local/apache2/htdocs/cgi-bin/ 
DocumentRoot /usr/local/apache2/htdocs/website 
CustomLog logs/website/access_log combined 
ErrorLog logs/website/error_log 
Redirect/http://newwebiste.com 
Redirect /xxx http://newwebiste.com 
</VirtualHost> 

目前上面的重定向仍然保留完整的URL。

所以,如果我想http://webiste.com/test/thispage.html我会重定向到http://newwebsite.com/test/thispage.html。我只是想让它去到newwebsite.com并失去其余的。

所以..

http://webiste.com/test/thispage.html

http://newwebsite.com

什么我需要添加到httpd.conf来实现这一目标?

感谢,

回答

0

删除

Redirect/http://newwebiste.com 
Redirect /xxx http://newwebiste.com 

,并添加

RewriteRule^http://newwebsite.com [L,R=301] 
+0

重新启动httpd服务时,我收到无效的命令警告。请参阅下面的 –

+0

/usr/local/apache2/conf/httpd.conf中第1526行的语法错误: 无效的命令'RewriteRule',可能是拼写错误或未包含在服务器配置中的模块定义 –

+0

我认为apache服务器需要被更新。重写MOD不存在,这就是为什么整个事情失败 –

2

正如您已经注意到重定向捕获所有,并将其发送到URI目标是你不想要的东西,因此您将使用RedirectMatch来匹配所有可能的请求,但不会向目标网址添加任何内容。

所以你可以使用:

RedirectMatch^http://newsite.example.com/

随着对mod_rewrite的一个侧面说明: 我当然不推荐的mod_rewrite所推荐的其他人,除非你真的有一个手头任务需要的只有mod_rewrite可以提供复杂性,事实并非如此。

附注2: 例如,最好使用“example.com”域名,因为它不是一个有效的域名,并且它是永久保留用于示例目的。

相关问题