为什么带有相对 URL 的 Apache 重定向在 OSX 中有效,但在 CentOS 中却无效?

为什么带有相对 URL 的 Apache 重定向在 OSX 中有效,但在 CentOS 中却无效?

尝试在这里做一些简单的事情,但遇到了很大的困难

.htaccess

Redirect 301 /foo-bar /foobar

这在 OSX 上运行良好,但 CentOS 抱怨我没有使用完整的 URL。

CentOS 想要

Redirect 301 /foo-bar http://example.com/foobar

我不想为每个 URL 指定完整的主机名。

OSX 和 CentOS 都运行 Apache2.2.x

有没有什么方法可以实现这个呢?


更新:

我试过了RewriteRule,但似乎没用

RewriteEngine On
RewriteRule ^/foo-bar$ /foobar [R=301,L]

匹配还没有完成,现在我就收到 404 错误

答案1

显然 apache 不支持在目标中使用相对 URL,Redirect直到2.2.6

我的 CentOS 正在运行2.2.3,所以这就是问题所在


我尝试使用RewriteRule也是错误的。以下内容将按预期工作

RewriteEngine On
RewriteRule ^foo-bar$ /foobar [R=301,L]

请注意,/我的原始问题已删除


长话短说,Redirect如果你的 apache 是,你可以使用相对 URL>= 2.2.6

Redirect 301 /foo-bar /foobar

RewriteRule如果你还在使用旧版本,可以使用

RewriteEngine On
RewriteRule ^foo-bar$ /foobar [R=301,L]

相关内容