【发布时间】:2019-08-26 14:35:42
【问题描述】:
目前我正在处理将域 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