我有以下.htaccess保存在网站的根目录中我试图在
中使用它RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
ErrorDocument 400 /error.php
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 405 /error.php
ErrorDocument 408 /error.php
ErrorDocument 500 /error.php
ErrorDocument 502 /error.php
ErrorDocument 504 /error.php
我的结构是root = website.com/httpdocs
我想在root中保留一个自定义页面error.php来显示我的错误
当我访问网址www.website.com/dir/时,我收到一条消息"找不到文件"这不是我的自定义error.php,另外该目录有一个应该读取的index.php文件
我试图添加
DirectoryIndex index.php
到.htaccess文件,我仍然没有找到"文件"
我无法弄明白 1)为什么我的自定义错误页面没有被读取 2)为什么index.php没有被读取 3)为什么重写条件都有效
答案 0 :(得分:0)
您需要检查.php文件是否存在,修改您的htaccess,如下所示:
ErrorDocument 400 /error.php
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 405 /error.php
ErrorDocument 408 /error.php
ErrorDocument 500 /error.php
ErrorDocument 502 /error.php
ErrorDocument 504 /error.php
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^\.]+)$ /$1.php [NC,L]