Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法从某个文件夹开始强制执行严格的url解释?_Url_.htaccess - Fatal编程技术网

有没有办法从某个文件夹开始强制执行严格的url解释?

有没有办法从某个文件夹开始强制执行严格的url解释?,url,.htaccess,Url,.htaccess,我的站点的一个区域有一个文件夹(我们称之为“test”),其中包含一系列子文件夹,这些子文件夹基于六位数代码,具有唯一的名称。我希望对该文件夹的任何不正确的查询(与现有url只有一个字符不同)总是返回404错误,而不是像现在这样重定向到非常相似的现有url 例如:如果../test/abc001/sample.txt存在,而../test/abc002/sample.txt不存在,我需要第二个查询返回404,而不是重定向到第一个url 可以在.htaccess文件中执行此操作吗?此指令 Opti

我的站点的一个区域有一个文件夹(我们称之为“test”),其中包含一系列子文件夹,这些子文件夹基于六位数代码,具有唯一的名称。我希望对该文件夹的任何不正确的查询(与现有url只有一个字符不同)总是返回404错误,而不是像现在这样重定向到非常相似的现有url

例如:如果../test/abc001/sample.txt存在,而../test/abc002/sample.txt不存在,我需要第二个查询返回404,而不是重定向到第一个url

可以在.htaccess文件中执行此操作吗?

此指令

Options -MultiViews
应该关闭你描述的行为


背景(搜索“多视图”部分)和
选项
指令的参考。

佩卡投了一票,但我不能真正接受他的答案是正确的,因为至少在我的情况下,答案不是正确的。正如我在他的解决方案下所评论的,正确答案是由我的托管公司提供的,该公司指示我使用此指令:

CheckSpelling off
这并不是说Pekka的答案对于其他面临类似问题的用户来说是不正确的。Apache声明默认情况下CheckSpelling是关闭的,因此我的托管公司显然首先要覆盖该默认设置


无论如何,感谢那些试图提供帮助的人。

想想你的Apache会这样做,我忘记了模块的名称,但我确信如果用户只输入了一两个字符,就会对其进行重新判定。嗯。。。我试着在测试文件夹中添加一个.htaccess文件,其中只有那一行,但似乎没有任何区别。对第二个(不存在)url的请求仍被重定向到第一个url。此设置需要时间才能生效吗?@Antagony否,此设置应立即生效。嗯,这可能有很多原因-例如,在中央配置文件中定义了不能在
.htaccess
文件中关闭该选项。您确定路径上的其他位置没有其他htaccess规则吗?@Pekka:唯一的另一个.htaccess文件位于根目录中,它所做的只是指定一个自定义404重定向和要使用的PHP版本。我正在查看托管公司的常见问题和AFAICT,他们没有阻止该选项;事实上,如果使用mod_rewrite,他们实际上会完全按照你上面写的那样重新编译。@Antagony真奇怪。能否尝试将.htaccess目录级别置于当前目录级别之上?mod_rewrite没有在任何地方使用?@Pekka:下一个文件夹是根目录,所以我编辑了现有的.htaccess文件并在顶部添加了一行,但恐怕还是一样。不,我没有在任何地方使用mod_rewrite。