将所有URL重定向到httpd.conf中的单个页面

时间:2016-07-15 18:45:19

标签: apache redirect httpd.conf

我正在寻找一种将整个网站重定向到一个域的方法。我想在httpd.conf文件中执行此操作。例如,VirtualHost我看起来像:

<VirtualHost xx.xx.xx.xx>
ServerName website.com
ServerAdmin webmaster@website.com
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>

目前,上面的重定向仍保留完整的网址。

因此,如果我想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来实现这个目标吗?

谢谢,

2 个答案:

答案 0 :(得分:3)

正如您所注意到Redirect捕获所有并将相同的URI发送到您不想要的目标,因此您将使用RedirectMatch来匹配所有可能的请求,但不向目标URL添加任何内容。

所以你可以使用:

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

作为关于mod_rewrite的旁注: 我当然不推荐其他人推荐的mod_rewrite,除非你真的有一个任务需要mod_rewrite可以提供的复杂性,而事实并非如此。

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

答案 1 :(得分:0)

删除

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

并添加

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