Litespeed 服务器上的重定向未按预期工作

Posted

技术标签:

【中文标题】Litespeed 服务器上的重定向未按预期工作【英文标题】:Redirection on Litespeed server not working as expected 【发布时间】:2022-01-18 05:49:25 【问题描述】:

Litespeed 遵守 .htaccess 规则,但我似乎无法让它解决我无法在线找到解决方案的基本问题。我想用子目录中的所有内容从这里重定向:

https://example.com/mail/

https://mail.example.com/

到目前为止我尝试过的方法不起作用:

设置 1

RewriteEngine On
RewriteBase /
RewriteCond %HTTP_HOST ^/mail$ 
RewriteRule ^(.*)$ https://mail.example.com/$1 [R=301,L] 

设置 2

RewriteRule ^mail/(.*)$ https://mail.example.com/$1 [R=301,NC,L]

设置 3

Redirect 301 /mail/ https://mail.example.com/

我还尝试了另外 5 种不起作用的方法。 mail.example.com 服务器与 example.com/mail/ 所在的服务器不同。

编辑回答评论:

我已将 .htaccess 文件放在根目录和邮件子目录中,但它不会重定向。不工作是指页面只是返回到原始 URL (example.com/mail/),而不是按预期重定向。

【问题讨论】:

您将这个.htaccess 文件放在哪里? /mail 是文档根目录中的物理子目录吗?这个.htaccess 文件中还有其他指令吗?文件系统路径上是否还有其他 .htaccess 文件? 而“不工作”是什么意思?什么都没发生?不受欢迎的重定向?错误? 我已编辑原始帖子以反映问题的答案。 这是共享服务器环境吗?你在/mail 看到了什么?这是一个特殊的主机控制子目录(可能是另一个服务器位置的别名,例如用于访问网络邮件)?您是否支持缓存代理/CDN? Setup#2 应该在根 .htaccess 文件中工作,而 Setup#3 应该在根文件或 /mail/.htaccess 文件中工作,前提是您没有其他冲突的指令。所以这里似乎还有其他事情发生。您是否尝试过 /mail 子目录之外的其他重定向? @MrWhite 这是一个 VPS,我有完全的 root 访问权限。在 /mail/ 中,有一个连接到底层电子邮件系统的 webmail 接口。没有别名。在带有 CDN 的 WordPress 上运行 Litespeed 缓存,但邮件子目录是完全独立的,不是设置的一部分。唯一的其他指令来自 WordPress 和 Litespeed 缓存。让我看看尝试其他重定向。 【参考方案1】:

您的设置 #1 几乎没问题。失败的原因是因为RewriteCond %HTTP_HOST ^/mail$ 不匹配。您需要将模式^/mail$ 更改为(www\.)?example\.com$ 其中example.com 是您的主域并将代码放在/mail/.htaccess

RewriteEngine On
RewriteBase /
RewriteCond %HTTP_HOST ^(?:www\.)?example\.com$  [NC]
RewriteRule ^(.*)/?$ https://mail.example.com/$1 [R=301,L]

【讨论】:

以上是关于Litespeed 服务器上的重定向未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

Paypal 未按预期重定向

httpd-vhosts.conf 中的重定向无法在 XAMPP 中按预期工作

iPhone Safari/Chrome 上的重定向过多

Apache 上的重定向(维护 POST 参数)

具有重写功能的 IIS 反向代理无法处理来自我们代理到的服务器的重定向

登录脚本PHP上的重定向循环