我使用以下重写网址:
RewriteRule /([^/?.]+) /somedir/somefile.aspx\?Name=$1 [NC,L]
这对我的使用非常有用,但我需要将其限制为仅对不包含文件名的文本执行操作...例如,如果我使用网址www.somedomain.com/SomeName它可以正常工作,但是如果我使用www.somedomain.com/TestPage.aspx
,它也会触发所以我不确定是否需要额外的Rewtire规则,或者是否可以修改当前的规则以禁止任何带扩展名的文本。例如。
非常感谢您对此正则表达式的任何帮助。
答案 0 :(得分:1)
尝试在重写规则之前添加:
RewriteCond %{REQUEST_FILENAME} !-f
这个条件检查请求的文件是否存在,如果不存在则返回true(因为它被否定了!)。
如果您还不需要为目录触发规则,则还要添加以下行:
RewriteCond %{REQUEST_FILENAME} !-d