关于URLRewriter与众不同的要求(不要说我变态哈,其实就是正则表达式的问题),谁能搞定,我们推荐他做版主。<RewriterRule>
<LookFor>~/(.*?)/(index\.aspx|default\.aspx)</LookFor> <!--访问路径-->
<SendTo>~/info/index.aspx?username=$1</SendTo> <!--实际路径-->
</RewriterRule>大家知道,这里的意思是:
当用户访问:http://localhost/test/index.aspx时,
实际上是访问:http://localhost/info/index.aspx?username=test。
通过测试,这个想法是可以实现的。此时文件存放在“/”下的情况是这样的:
/┬ …
├ info/index.aspx
├ admin/index.aspx
├ temp/index.aspx
├ test/index.aspx
├ user/index.aspx
└ ……问题:
如上图中,当重写的文件夹(或用户)增多,根下面就会有很多文件夹,容易和系统文件混淆。
如果能将实际访问文件路径的和重写的文件分类放开,那会好很多,如下图:
/┬ …
├ info/index.aspx
└ temp/┬ admin/index.aspx
├ test/index.aspx
├ user/index.aspx
└ ……
(注:info下的文件是实际访问的文件,temp是根据用户名重写的文件)。请问:
————————————————————————————————————————
如何修改该RewriterConfig节中lookFor的相关正则表达式?
<RewriterRule>
<LookFor>~/(.*?)/(index\.aspx|default\.aspx)</LookFor> <!--访问路径-->
<SendTo>~/info/index.aspx?username=$1</SendTo> <!--实际路径-->
</RewriterRule>
<LookFor>~/(.*?)/(index\.aspx|default\.aspx)</LookFor> <!--访问路径-->
<SendTo>~/info/index.aspx?username=$1</SendTo> <!--实际路径-->
</RewriterRule>大家知道,这里的意思是:
当用户访问:http://localhost/test/index.aspx时,
实际上是访问:http://localhost/info/index.aspx?username=test。
通过测试,这个想法是可以实现的。此时文件存放在“/”下的情况是这样的:
/┬ …
├ info/index.aspx
├ admin/index.aspx
├ temp/index.aspx
├ test/index.aspx
├ user/index.aspx
└ ……问题:
如上图中,当重写的文件夹(或用户)增多,根下面就会有很多文件夹,容易和系统文件混淆。
如果能将实际访问文件路径的和重写的文件分类放开,那会好很多,如下图:
/┬ …
├ info/index.aspx
└ temp/┬ admin/index.aspx
├ test/index.aspx
├ user/index.aspx
└ ……
(注:info下的文件是实际访问的文件,temp是根据用户名重写的文件)。请问:
————————————————————————————————————————
如何修改该RewriterConfig节中lookFor的相关正则表达式?
<RewriterRule>
<LookFor>~/(.*?)/(index\.aspx|default\.aspx)</LookFor> <!--访问路径-->
<SendTo>~/info/index.aspx?username=$1</SendTo> <!--实际路径-->
</RewriterRule>
当用户访问:http://localhost/user/test/index.aspx时,
实际上是访问:http://localhost/info/index.aspx?username=test。
├ info/index.aspx
└ temp/┬ admin/index.aspx
├ test/index.aspx
├ user/index.aspx
└ ……
temp是根据用户名重写的文件如果根据用户名,每个用户都不一样,能实现吗,拿什么匹配或比较?
<SendTo>~/info/index.aspx?username=$1</SendTo> <!--实际路径-->
context.RewritePath
<SendTo>~/info/index.aspx?username=$1</SendTo>你的意思还不大了解 按我理解的你的意思写了一下 看看是不是你想要的
如果是 记得给分就好 版主不适合我
在d:\web\i\下面存放不同id值的网站,如:
d:\web\i\001
d:\web\i\002
d:\web\i\003
d:\web\i\004
而实际访问的是:
d:\web\info\index.aspx?id=001
d:\web\info\index.aspx?id=002
d:\web\info\index.aspx?id=003
d:\web\info\index.aspx?id=004这时候,通过UrlRewrite倒是可以实现这样的路径来访问:
http://www.xxx.com/i/001/
http://www.xxx.com/i/002/
http://www.xxx.com/i/003/
http://www.xxx.com/i/004/如果我不想要访问的路径是上面的,而是下面的:
http://www.xxx.com/001/
http://www.xxx.com/002/
http://www.xxx.com/003/
http://www.xxx.com/004/主要的问题是:
我不想把要访问的放在网站的根下来实现上面的这种访问方式,如:
d:\web\001
d:\web\002
d:\web\003
d:\web\004
如果你想不带后缀的话就必须这么放
此目录中还需要具有 Default.aspx 页面
以便可以将请求传递给 ASP.NET 引擎当然要是有。ASPX的话 根本就不用目录