重写URL,正则表达式帮助

时间:2011-01-13 19:46:05

标签: regex rewrite isapi

我使用以下重写网址:

RewriteRule /([^/?.]+) /somedir/somefile.aspx\?Name=$1 [NC,L]

这对我的使用非常有用,但我需要将其限制为仅对不包含文件名的文本执行操作...例如,如果我使用网址www.somedomain.com/SomeName它可以正常工作,但是如果我使用www.somedomain.com/TestPage.aspx

,它也会触发

所以我不确定是否需要额外的Rewtire规则,或者是否可以修改当前的规则以禁止任何带扩展名的文本。例如。

非常感谢您对此正则表达式的任何帮助。

1 个答案:

答案 0 :(得分:1)

尝试在重写规则之前添加:

RewriteCond %{REQUEST_FILENAME} !-f

这个条件检查请求的文件是否存在,如果不存在则返回true(因为它被否定了!)。

如果您还不需要为目录触发规则,则还要添加以下行:

RewriteCond %{REQUEST_FILENAME} !-d