我已经为我的 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。
编辑:正则表达式错了。 已修复,但仍出现问题。
看起来您的组中可能缺少括号:
这:
^/Foo/(A-Za-z0-9]+)/(A-Za-z0-9]+)$
应该是:
^/Foo/([A-Za-z0-9]+)/([A-Za-z0-9]+)$
此类错误通常会导致服务器抱怨配置格式不正确。您是否检查过服务器日志?