Apache配置-排除子目录

Apache配置-排除子目录,apache,configuration,subdirectory,Apache,Configuration,Subdirectory,有没有一种方法可以在不使用.htaccess文件的情况下将规则应用于单个目录而不是其子目录?我希望/var/www/html按日期desc排序。但是,在子目录中,我不希望应用此规则 现在,我在/var/www/html目录标记中有indexorderfault降序日期。您可以使用DirectoryMatch指令精确匹配该目录(并且仅匹配该目录): INDEXORDEFAULT递减日期 它使用正则表达式来匹配目录路径。有关详细信息,请参阅。您可以使用DirectoryMatch指令精确匹配该目

有没有一种方法可以在不使用.htaccess文件的情况下将规则应用于单个目录而不是其子目录?我希望/var/www/html按日期desc排序。但是,在子目录中,我不希望应用此规则


现在,我在/var/www/html目录标记中有indexorderfault降序日期。

您可以使用DirectoryMatch指令精确匹配该目录(并且仅匹配该目录):


INDEXORDEFAULT递减日期

它使用正则表达式来匹配目录路径。有关详细信息,请参阅。

您可以使用DirectoryMatch指令精确匹配该目录(并且仅匹配该目录):


INDEXORDEFAULT递减日期

它使用正则表达式来匹配目录路径。有关更多信息,请参阅。

有关遇到此问题的用户,请参阅(Apache bug 49809)。$由于某些无法解释的原因,Apache无法将其识别为线端锚。

对于遇到此问题的用户:请参阅(Apache bug 49809)。$由于某种莫名其妙的原因,Apache没有将Rich Leland的答案视为一个线端锚。

在Apache 2.4.43下,Rich Leland的答案对我不起作用。工作原理是:

<DirectoryMatch '^/var/www/html/?$'>
    IndexOrderDefault Descending Date
    </DirectoryMatch>
请注意,只有当所有子目录请求都以斜杠终止时才有效,当
保持默认设置时,斜杠有效


所有这些都需要Apache 2.3.9或更高版本。“在2.3.9之前,[
]隐式应用于子目录(如
),并且无法匹配行尾符号(
$
)。”

Rich Leland的答案在Apache 2.4.43下对我不起作用。工作原理是:

<DirectoryMatch '^/var/www/html/?$'>
    IndexOrderDefault Descending Date
    </DirectoryMatch>
请注意,只有当所有子目录请求都以斜杠终止时才有效,当
保持默认设置时,斜杠有效


所有这些都需要Apache 2.3.9或更高版本。“在2.3.9之前,[
]隐式应用于子目录(如
),并且无法匹配行尾符号(
$
)。”

是的,我读到的所有内容都表明这是最好的方法。出于某种原因,我在Fedora8上的apache似乎忽略了正则表达式中的行尾锚点。当我有机会的时候,我会在我的Centos盒子上试一下,如果成功的话,我会给你荣誉。是的,我读到的所有东西都表明这是最好的方法。出于某种原因,我在Fedora8上的apache似乎忽略了正则表达式中的行尾锚点。当我有机会的时候,我会在我的Centos盒子上试一下,如果成功的话,我会给你荣誉。很好的跟进。我希望我有时间去调查一下。我记得这一次我的头撞到了墙上!伟大的后续行动。我希望我有时间去调查一下。我记得这一次我的头撞到了墙上!“只有当所有子目录请求都以斜杠终止时,这才有效”那么,如果子目录请求没有以斜杠终止,会发生什么情况?是不是这些指令根本不适用于任何事情?或者它们确实适用于所需的文件,但也适用于子目录及其文件?此外,您的正则表达式似乎是为匹配完整的文件路径而构建的。我希望在请求文件时,Apache本身会解析出路径的目录部分,并使用它来匹配
DirectoryMatch
参数。没有?这是我最后的评论。。。我做了一些测试(Apache 2.4.46),看起来您的方法是正确的-如果指令要应用于目录中的文件,那么
DirectoryMatch
指令的参数需要匹配完整的文件路径,包括文件名。奇怪,伊姆霍。这显然不是
Directory
指令的工作方式。“只有当所有子目录请求都以斜杠终止时,它才起作用”那么,如果子目录请求没有以斜杠终止,会发生什么呢?是不是这些指令根本不适用于任何事情?或者它们确实适用于所需的文件,但也适用于子目录及其文件?此外,您的正则表达式似乎是为匹配完整的文件路径而构建的。我希望在请求文件时,Apache本身会解析出路径的目录部分,并使用它来匹配
DirectoryMatch
参数。没有?这是我最后的评论。。。我做了一些测试(Apache 2.4.46),看起来您的方法是正确的-如果指令要应用于目录中的文件,那么
DirectoryMatch
指令的参数需要匹配完整的文件路径,包括文件名。奇怪,伊姆霍。这显然不是
目录
指令的工作方式。
<DirectoryMatch '^/var/www/html(?:/[^/]*)?$'>
    IndexOrderDefault Descending Date
    SetOutputFilter DEFLATE
    </DirectoryMatch>