我已经为我的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/$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。
编辑:regex是错误的。已修复,但问题仍然存在。
1条答案
按热度按时间c9x0cxw01#
看起来像是你们组里少了一个括号:
这一点:
^/Foo/(A-Za-z0-9]+)/(A-Za-z0-9]+)$
应该是:
^/Foo/([A-Za-z0-9]+)/([A-Za-z0-9]+)$
这种错误通常会导致服务器抱怨配置格式不正确。你查过服务器日志了吗