如何重定向到其他域和不同的文件夹?

时间:2017-08-20 13:58:14

标签: .htaccess ssl redirect

我需要将哪些htaccess规则应用于重定向到其他域,还要应用于不同的文件夹结构?示例:当前页面是

http://oldwebsite.com/school/forum

并且新网站将是

https://newwebsite.com/forum

我认为仅域名的重写规则是

RewriteEngine on
RewriteRule ^(.*)$ https://newwebsite.com/$1 [R=301,L]

在我测试时效果很好。 但是我无法找出我需要什么规则来重写旧论坛帖子,这些帖子位于一个不必要的子文件夹中,直接位于/ forum中。

另外:我是否需要编写http s ,或者这是无关紧要的事情,如果我有SSL证书并且论坛(在这种情况下是phpbb3)设置的话会自动完成到底是SSL吗?

谢谢和最诚挚的问候, 岸堤

1 个答案:

答案 0 :(得分:0)

这就是你想要的我想:

RewriteEngine on
RewriteRule ^/?school/(.*)$ https://newwebsite.com/$1 [R=301]

该规则将在http服务器主机配置中运行,同样在动态配置文件(.htaccess)中运行,然后主机文档根目录。显然必须启用重写模块。如果您决定使用动态配置文件,那么您还需要使用AllowOverride指令来允许它。

您需要指定https协议,因为这是重定向客户端将建立连接的位置。客户必须在与服务器联系之前决定。因此,是否安装了ssl证书并没有真正帮助。您强大依赖于在新域上从http到http的额外重定向,但为什么呢?首先直接重定向到ssl端口要好得多。

一般提示:您应该始终更喜欢将此类规则放在http服务器(虚拟)主机配置中,而不是使用动态配置文件(.htaccess样式文件)。这些文件非常容易出错,难以调试,它们确实会降低服务器的速度。只有在您无法控制主机配置(读取:非常便宜的托管服务提供商)或者您的应用程序依赖于编写自己的重写规则(这是一个明显的安全噩梦)的情况下,它们才被支持作为最后一个选项。 )。