未遵循重定向规则

时间:2019-05-30 13:16:51

标签: apache url-rewriting mod

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

我的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/$1/Bar/$2/json

</VirtualHost>

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

日志中的错误:

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

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

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

1 个答案:

答案 0 :(得分:0)

您的组中似乎缺少一个括号:

此:

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

应为:

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

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