Regex ISAPI重写规则帮助(http://www.foo.com/bar --&燃气轮机;http://www.foo.com/bar.aspx)
这是一个非常简单的方法,但我需要正确地执行此操作,并且不能承担错误,因为我需要尽快在实时服务器上部署Regex ISAPI重写规则帮助(http://www.foo.com/bar --&燃气轮机;http://www.foo.com/bar.aspx),regex,mod-rewrite,isapi-rewrite,Regex,Mod Rewrite,Isapi Rewrite,这是一个非常简单的方法,但我需要正确地执行此操作,并且不能承担错误,因为我需要尽快在实时服务器上部署 http://www.foo.com/bar --> http://www.foo.com/bar.aspx http://www.foo.com/bar?q=boo --> http://www.foo.com/bar.aspx?q=boo # I only want /bar to get rewritten to /bar.aspx # everything else sta
http://www.foo.com/bar --> http://www.foo.com/bar.aspx
http://www.foo.com/bar?q=boo --> http://www.foo.com/bar.aspx?q=boo
# I only want /bar to get rewritten to /bar.aspx
# everything else stays as is
http://www.foo.com/bar.aspx --> http://www.foo.com/bar.aspx
http://www.foo.com/bar.pdf --> http://www.foo.com/bar.pdf
我到了这里,但是这会把bar.aspx
变成bar.aspx.aspx
,这不好
# Helicon ISAPI_Rewrite configuration file
RewriteEngine on
RewriteRule (.*) $1.aspx [L]
试试这个规则:
RewriteCond $1 !.*\.aspx$
RewriteRule (.*) $1.aspx [L]
这将避免递归可能出现的任何问题。如果要排除现有文件,请尝试以下条件:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.aspx [L]
令人惊叹的!在英语中,“RewriteCond$1.*\.aspx$”@DrG:
$1
与替换表达式中的RewriteRule
模式的第一组匹配类似。然后根据模式!*\,对其进行测试。aspx$
简单地反转*\.aspx$
的结果。因此,如果当前URL路径是/bar.aspx
,$1
是bar.aspx
,然后由*\.aspx$
匹配,因此重写条件的结果是false,因为*\.aspx$
是否定的。这意味着该规则不适用于/bar.aspx
,因为它以.aspx
结尾。在foo.com/bar.pdf
上会发生什么。我也要让它一个人呆着。也许我真的需要你的第二条规则。它开始下沉了!我觉得我可能需要两者的结合。谢谢你的帮助,Gumbo,我的基础比以前好多了:D@DrG:您可以通过指定允许的字符使规则更具体。例如,如果不希望将该规则应用于已包含点(如文件名中)的URL,请使用^([^.]+)$
而不是通用(.*)
。