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/
的内容。我应该发布整个配置吗?