Isapi Rewrite:从URL中删除文件名

时间:2010-04-19 19:43:27

标签: mod-rewrite isapi-rewrite

我正在尝试在我的网域上使用isapi重写工具来编写一些基本规则,但我感到有些困惑。

我的基本网址是http://forevr-dev.co.uk/musicexplained/index.cfm,网站上的每个网页都来自此基本网址。例如,http://forevr-dev.co.uk/musicexplained/index.cfm/artist/blondie将是金发女郎的艺术家页面。

我正在寻找的是一个重写规则,它会从网址中删除index.cfm,而不是http://forevr-dev.co.uk/musicexplained/artist/blondie

我已将httpd.ini文件放在我的forevr-dev.co.uk域的根目录下的musicexplained文件夹中,我使用下面的代码,我在coldbox coldfusion框架应用程序示例中使用了该代码。

RewriteEngine On
RepeatLimit 0

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.cfm/%{REQUEST_URI} [QSA,L]

然而,当我现在转到新的漂亮网址时,我收到一条错误消息,指出无法找到该网页,以及404消息。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

问题是你在谈论httpd.ini文件(在ISAPI_Rewrite v2中使用),上面的语法是针对v3的。所以你的版本很重要......

对于v2,请尝试:

[ISAPI_Rewrite]
RewriteRule ^/(?!index\.cfm.*)(.*)$ index.cfm/$1 [I,L]

对于v3,请尝试:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .? index.cfm/%{REQUEST_URI} [QSA,L]