为特定目录设置Apache DefaultIndex

时间:2012-09-13 20:32:03

标签: regex apache mod-rewrite

在我工作的网站上,有一个包含以下文件的目录:

abc.com/parts/df/df001/df001.html

df数字序列大约有800个。我希望能够使用这样的链接:

abc.com/parts/df/df001 /

我知道您可以使用defaultIndex将默认页面设置为index.html以外的其他页面,但是您可以针对特定目录执行此操作,以便/ parts / df的所有子目录映射到HTML文件与子文件夹同名?

或者,更好的是,我想使用这样的网址:

abc.com/parts/df001(尽管该文件位于abc.com/parts/df/df001/df001.html)

我认为这可能与mod_rewrite和正则表达式有关,但我无法弄明白。

1 个答案:

答案 0 :(得分:0)

查看Apache HTTPD documentation - 您要查找的指令名为 DirectoryIndex 。您可以使用server config, virtual host, directory, .htaccess给出的上下文定义 - 但同时您(从文档中)了解到该指令不支持任何类型的正则表达式。因此mod_rewrite就是你所需要的。

关于正则表达式 - 我会说你可以这样使用......

RewriteRule ^parts/df/df(\d+)/$ parts/df/df$1/df$1.html [L,R=301]

要放在part / df(或任何上层文件夹)中的.htaccess中,要么放在vhost配置中。有关详细信息,请参阅documentation