.htaccess - 如何重定向到不同的域和不同的文件夹?

标签 .htaccess ssl redirect

我需要应用什么 htaccess 规则才能重定向到不同的域以及不同的文件夹结构?示例:当前页面是

http://oldwebsite.com/school/forum

新网站将是

https://newwebsite.com/forum

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

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

当我测试它时,它工作得很好。 但是我找不到将不需要的子文件夹中的旧论坛帖子重写到直接位于/forum 的新域中需要什么规则。

另外:我需要写 https 还是一些无关紧要的事情,如果我有 SSL 证书并且论坛(在这种情况下为 phpbb3)已设置,将自动完成无论如何到 SSL?

谢谢和最好的问候, 安迪

最佳答案

我假设这就是您正在寻找的:

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

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

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

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

关于.htaccess - 如何重定向到不同的域和不同的文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45782916/

相关文章:

php - WordPress 将非类别页面/页面/nnn 重定向到它们的规范 URL

ios - 将敏感数据附加到 iOS 应用程序中使用的 https url 的末尾是否安全?

.htaccess - 用.htaccess替换URL的一部分

php - 600 + 模式重写规则,apache 可以吗?

delphi - Wininet SSL 客户端验证异常

amazon-web-services - Amazon Certificate Manager 给出 LimitExceededException

redirect - Joomla 3 登录重定向 - 在登录模块中工作,但在组件登录 View 中不起作用

php - 在 AngularJS 页面的 .htaccess 中重定向机器人和爬虫

wordpress - 如何使用 htaccess 将 .com 域名重定向到 .co.uk 域?

php - Mod_rewrite - 重写条件不起作用