这应该大致是你要找的:
RewriteEngine on
RewriteRule ^/?(.*)$ https://example.com/$1 [END,QSA]
该规则同样适用于 http 服务器主机配置和动态配置文件(“.htaccess”)。
如果您收到“内部服务器错误(http 状态 500)”,这很可能是您运行的是非常旧版本的 apache http 服务器。在这种情况下,将在 http 服务器错误日志文件中找到关于此的提示。在这种情况下,您需要将 [END] 标志替换为 [L] 标志。
如果您将 both 域作为虚拟主机运行在单个 http 服务器上,则需要注意不要创建无休止的重写循环。在这种情况下,添加一个条件来防止这种循环:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^example\.com$
RewriteRule ^/?(.*)$ https://example.com/$1 [END,QSA]
一般提示:您应该始终喜欢将此类规则放在 http 服务器(虚拟)主机配置中,而不是使用动态配置文件(.htaccess 样式文件)。众所周知,这些文件容易出错,难以调试,而且它们确实会降低服务器的速度。它们仅在您无法控制主机配置的情况下(阅读:非常便宜的托管服务提供商)或如果您的应用程序依赖于编写自己的重写规则(这是一个明显的安全噩梦)提供它们作为最后一个选项)。
更新:
在下面的评论中,您提到您只想将此类重定向应用于请求路径中的特定子文件夹。为此,您只需修改匹配模式:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^example\.com$
RewriteRule ^/?folder/(.*)$ https://example.com/folder/$1 [END,QSA]
另一种选择是:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^example\.com$
RewriteRule ^/?(folder/.*)$ https://example.com/$1 [END,QSA]