禁用.htaccess中单个文件夹的DirectorySlash

时间:2015-02-13 16:50:36

标签: apache .htaccess mod-rewrite

我正在使用.htaccess重定向一堆URI以删除尾部斜杠并使用以下规则提供我正在处理的特定网站的主页:

RewriteEngine ON

# for homepage section URIs, redirect to remove trailing slash
RedirectMatch 301 ^(/?)(hero|night|entertainment|ticket-info|sponsors|charities|work|committee)/$ $1$2

# serve homepage
RewriteRule ^/?(hero|night|entertainment|ticket-info|sponsors|charities|work|committee)$ index.html [L]

但是,还有一个名为ticket-info的文件夹,我希望能够从那里提供文件,例如/ticket-info/img.jpg或/ ticket-info / buy /

Apache会自动添加尾部斜杠并尝试提供目录索引。我想仅为/ ticket-info和/ ticket-info / routes禁用此行为(但保持该目录和网站其余部分中的任何其他文件的默认行为)。我尝试通过添加以下规则来执行此操作,但它返回内部服务器错误。

# don't add slash even if directory exists
<Location /ticket-info/>
    DirectorySlash Off
    SetHandler some-handler
</Location>

我需要添加哪些规则来禁用仅为此路由添加斜杠,但在其他地方保留默认行为?

1 个答案:

答案 0 :(得分:0)

如果/ticket-info是一个目录,请在其中创建一个htaccess文件:

DirectorySlash off
SetHandler some-handler

您无法在htaccess文件中使用<Location>容器:http://httpd.apache.org/docs/2.2/mod/core.html#location