我希望我的用户只访问我的php文件,如果他们试图访问我想要包含我的404页文件的文件夹
我有我的查询字符串来包括我的页面,在我的主页中,就像你在下面看到的,它工作正常,我包括我的页面也很好 但有些事情发生了,我不知道如何解决这个问题 我将尝试用一个例子来解释我的isse:我有一个文件夹“teachers”,里面有两个pdf文档和一个页面“documents.php”。 要访问此文档页面,请使用Im访问:htp://localhost/website/teachers/documents“,而且它工作得很好 但如果我成功了”htp://localhost/website/teachers/“,我可以访问我的pdf文档和页面,如下图所示 但我不希望这样,我希望如果有用户试图访问”htp://localhost/website/teachers/,我想包括我的404文件(我希望我的用户只访问我的php文件,如果他们试图访问我想要包含我的404页文件的文件夹,php,.htaccess,mod-rewrite,include,Php,.htaccess,Mod Rewrite,Include,我有我的查询字符串来包括我的页面,在我的主页中,就像你在下面看到的,它工作正常,我包括我的页面也很好 但有些事情发生了,我不知道如何解决这个问题 我将尝试用一个例子来解释我的isse:我有一个文件夹“teachers”,里面有两个pdf文档和一个页面“documents.php”。 要访问此文档页面,请使用Im访问:htp://localhost/website/teachers/documents“,而且它工作得很好 但如果我成功了”htp://localhost/website/teache
require_once('inc/404.php');
)
我的查询字符串:
@$url = $_GET['url'];
$url = explode('/', $url);
$url[0] = ($url[0] == NULL ? 'index' : $url[0]);
if(file_exists('inc/'.$url[0].'.php')){
require_once('inc/'.$url[0].'.php');
}
elseif(file_exists($url[0].'/'.$url[1].'/'.$url[2].'.php')){
require_once($url[0].'/'.$url[1].'/'.$url[2].'.php');
}
elseif(@file_exists($url[0].'/'.$url[1].'.php')){
require_once($url[0].'/'.$url[1].'.php');
}
else{
require_once('inc/404.php');
}
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1
你知道我做错了什么而没有得到我想要的结果吗
我的htaccess文件:
@$url = $_GET['url'];
$url = explode('/', $url);
$url[0] = ($url[0] == NULL ? 'index' : $url[0]);
if(file_exists('inc/'.$url[0].'.php')){
require_once('inc/'.$url[0].'.php');
}
elseif(file_exists($url[0].'/'.$url[1].'/'.$url[2].'.php')){
require_once($url[0].'/'.$url[1].'/'.$url[2].'.php');
}
elseif(@file_exists($url[0].'/'.$url[1].'.php')){
require_once($url[0].'/'.$url[1].'.php');
}
else{
require_once('inc/404.php');
}
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1
有一个更简单的解决办法 将此行添加到.htaccess文件的开头:
Options -Indexes
这样,您将无法看到文件夹内容
编辑:htaccess规则解决方案(位于
网站
文件夹中)
htp://localhost/website/teachers/documents
带你去哪里?如图片所示,教师文件夹中没有文件夹。我不知道我是否清楚地理解了你的问题,但是,我的网站文件夹中有一个教师文件夹。在教师内部,我有我的documents.php文件,所以当我访问“”时,我访问我的文档页面…我这样访问,因为我的htacesss文件,所以我不使用documents.php文件,但文档不是文件夹,它是一个php文件,我的文档页面…谢谢Justin lurman,您的解决方案很好。但是我想包括我自己的404.php文件,在我的.htaccess文件中使用您的代码,我会得到一个默认的“错误403”…哪个文件夹是您的htaccess?在“网站”文件夹中。您的文件404.php
是否在/Website/inc/
中?如果是这样,请查看我编辑的答案(“编辑”部分)并尝试它如果您想隐藏1st_grade
文件夹,则是您的上一条规则应该是确定的