Apache 未找到.htaccess重写文件

Apache 未找到.htaccess重写文件,apache,.htaccess,redirect,mod-rewrite,Apache,.htaccess,Redirect,Mod Rewrite,我知道这里有很多关于这个主题的问题,但是我无法让我的.htaccess工作 预期 应使用RewriteEngine将所有流量重定向到/index.php 结果: 使用以下.htaccess: RewriteEngine on RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule (.*) index.php [NC,QSA,R] 我得到以下错误(使用http://localhost/foo,应重定向到:http://localhost/index.

我知道这里有很多关于这个主题的问题,但是我无法让我的
.htaccess
工作

预期 应使用RewriteEngine将所有流量重定向到
/index.php

结果: 使用以下
.htaccess

RewriteEngine on
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule (.*) index.php [NC,QSA,R]
我得到以下错误(使用
http://localhost/foo
,应重定向到:
http://localhost/index.php

在此服务器上找不到请求的URL/index.php。

服务器/配置 从
/var/www/
中的
ls
输出:

drwxr-xr-x  2 www-data root 4096 May 30 16:57 .
drwxr-xr-x 19 root     root 4096 May 30 16:57 ..
-rw-r--r--  1 root     root   92 May 30 17:34 .htaccess
-rw-r--r--  1 www-data root    4 May 30 16:50 index.php
路径的配置:

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

选项索引跟随符号链接
允许超越所有
要求所有授权

我遗漏了什么吗?

您可以使用以下绝对目标路径:

RewriteEngine on
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule (.*) /index.php [R,L]

首先,由于您似乎可以访问服务器配置,因此无需使用
.htaccess
文件。只需在
目录中添加重写指令即可


重写规则的问题似乎是
目录
和.htaccess之间的差异是
/var/www
,但您的文档根是
/var/www/html
。为了查找
/index.php
(注意前面的斜杠),它必须位于文档根目录中,
/var/www/html
,而不是
/var/www

这看起来不错,但我从firefox和chrome上都得到了错误,我的页面重定向到了很多(
ERR\u TOO\u MANY\u REDIRECTS
)它现在符合您的规则,我的确认也有问题,谢谢;)您的
文档根在哪里?是/var/www还是其他地方?我没有更改默认配置,但是默认情况下(如果没有索引文件),它显示
/var/www/html/
的内容。我应该发布整个配置吗?