我知道此处有很多关于此主题的问题,但我无法让.htaccess
工作。
应使用RewriteEngine
将所有流量重定向到/index.php
使用以下.htaccess
:
RewriteEngine on
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule (.*) index.php [NC,QSA,R]
我收到以下错误(使用http://localhost/foo
,应该重定向到:http://localhost/index.php
:
The requested URL /index.php was not found on this server.
ls
中/var/www/
的输出:
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>
我错过了什么吗?
答案 0 :(得分:1)
您可以将以下内容与绝对目标路径一起使用:
RewriteEngine on
RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule (.*) /index.php [R,L]
答案 1 :(得分:0)
首先,由于您似乎可以访问服务器配置,因此无需使用.htaccess
文件。只需在Directory
指令中添加重写指令。
重写规则的问题似乎是Directory
和.htaccess /var/www
之间的区别,但您的文档根目录是/var/www/html
。要查找/index.php
(请注意前导斜杠),它必须位于文档根目录/var/www/html
中,而不是/var/www
中。