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 服务器上的重定向未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章
httpd-vhosts.conf 中的重定向无法在 XAMPP 中按预期工作