我已经为我的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。
编辑: 正则表达式是错误的。已修复,但问题仍然存在。
答案 0 :(得分:0)
您的组中似乎缺少一个括号:
此:
^/Foo/(A-Za-z0-9]+)/(A-Za-z0-9]+)$
应为:
^/Foo/([A-Za-z0-9]+)/([A-Za-z0-9]+)$
这种错误通常会导致服务器抱怨格式错误的服务器。您检查服务器日志了吗?