301没有www工作的重定向域,但没有www

问题描述 投票:0回答:1

目前我正在处理将域A重定向到域B并将域A中的特定页面重定向到域B的请求。这是伪代码的期望:

foo.com =====> https://www.bar.com
foo.com/foo =====> https://www.bar.com/bar

和:

www.foo.com =====> https://www.bar.com
www.foo.com/foo =====> https://www.bar.com/bar

但是,只有非www重定向正在按预期工作,并且www重定向根本不起作用。从本质上讲,上面的第一组重定向是有效的,而第二组则没有。

这是我的Vhost文件:

<VirtualHost *:80>
  ServerName foo.com
    ServerAlias www.foo.com
    ErrorLog /etc/httpd/logs/foo.com-error.log
  Include /etc/httpd/conf.d/rewrite_rules/foo.com.rewrite
</VirtualHost>

我的重写规则:

RewriteEngine On
RewriteRule ^/foo$  https://www.bar.com/bar  [R=301,L,NC]
RewriteRule (.*) https://www.bar.com  [R=301,L,NC]

奇怪的是,当我在测试服务器上使用curl进行测试时,似乎重定向了URL:

301 http://www.foo.com/ https://www.bar.com

我觉得我在重写规则中遗漏了一些东西。任何人都可以就此问题提出建议吗?在此先感谢您的帮助。

regex apache redirect mod-rewrite http-status-code-301
1个回答
0
投票

找出这个问题的答案。事实证明,现有的规则都是功能性的,并按预期工作;但是,服务器上的SSL证书导致不匹配错误。

SSL证书中的这种不匹配停止了重定向功能。上传必要的证书后,一切都按预期工作。希望这个答案可以帮助将来有需要的人。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.