.htaccess在子目录中被忽略

时间:2016-06-10 03:44:11

标签: php .htaccess

我有以下.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)为什么重写条件都有效

1 个答案:

答案 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]