未遵循重定向规则

Redirect rule not being followed

我已经为我的 apache 站点设置了以下 conf 文件并启用了 mod 重写,但是我在触发规则时遇到了问题。我相当有信心这是一个遗漏的配置,但我不确定它在哪里。我一直在尝试不同的配置,但找不到有效的配置

我的 apache2.conf 文件包含以下内容

<Directory /var/www/html>
    Options Indexes FollowSymLinks
    AllowOverride FileInfo
    Require all granted
</Directory>

我的 000-default.conf 文件包含以下内容

<VirtualHost *:80>
    DocumentRoot /var/www/html

    RewriteEngine On
    RewriteRule ^/Foo/([A-Za-z0-9]+)/([A-Za-z0-9]+)$ /Baz//Bar//json

</VirtualHost>

如果我去: http://localhost/Foo/sample/data

日志中的错误:

 File does not exist: /var/www/html/Foo/sample/data

但是,如果我手动转到 /Baz/sample/Bar/data/json,我会得到 200。

编辑: 正则表达式是错误的。已修复,但问题仍然存在。

您的组中可能缺少括号:

这个:

^/Foo/(A-Za-z0-9]+)/(A-Za-z0-9]+)$

应该是:

^/Foo/([A-Za-z0-9]+)/([A-Za-z0-9]+)$

这种错误通常会导致服务器抱怨配置格式错误。您检查过服务器日志了吗?