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

jq6vz3qz  于 2023-08-07  发布在  Apache
关注(0)|答案(2)|浏览(170)

我正在寻找一种方法来重定向整个网站到一个单一的域。我想在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://newwebsite.com
Redirect /xxx http://newwebsite.com
</VirtualHost>

字符串
目前,上面的重定向仍然保留完整的URL。
所以如果我想http://website.com/test/thispage.html,我会重定向到http://newwebsite.com/test/thispage.html。我只想让它去newwebsite.com,把剩下的都丢了。
所以...
http://website.com/test/thispage.html

http://newwebsite.com
我需要向httpd.conf添加什么来实现这一点?

rpppsulh

rpppsulh1#

正如你所注意到的,Redirect会捕获所有的请求,并将相同的URI发送到你不想要的目标,所以你将使用RedirectMatch来匹配所有可能的请求,但不会向目标URL添加任何内容。
所以你可以用途:
重定向匹配^ http://newsite.example.com/
关于mod_rewrite:我当然不会像其他人推荐的那样推荐mod_rewrite,除非你手头真的有一个任务,需要只有mod_rewrite才能提供的复杂性,而事实并非如此。
旁注2:例如,最好使用“example.com”域名,因为它不是一个有效的域,并且它是永久保留的。

7fyelxc5

7fyelxc52#

移除

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

字符串
并添加

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

相关问题