标签: urlrewriter

您为ASP.Net使用什么Url重写器?

我看了几个ASP.Net和IIS的URL重写器,并想知道其他人使用什么,以及为什么.

以下是我使用或查看过的内容:

  • ThunderMain URLRewriter:在以前的项目中使用,并没有我们想要的灵活性/性能
  • Ewal UrlMapper:用于当前项目,但源似乎被放弃了
  • UrlRewritingNet.UrlRewrite:看起来像个不错的库,但文档的语法很差让我感到不安
  • UrlRewriter.NET:这是我目前的最爱,具有很大的灵活性,虽然泵入替换正则表达式的额外功能改变了标准的.Net正则表达式语法
  • 托管Fusion URL重写器:我在上一个关于堆栈溢出的问题中找到了这个,但还没有尝试过,从示例语法来看,它似乎不能通过web.config编辑

asp.net iis urlrewriter url-rewriting

14
推荐指数
2
解决办法
1534
查看次数

Tuckey UrlRewrite:更改urlrewrite.xml后的ClassNotFoundException

我希望能够在不重新启动服务器的情况下更改urlrewrite.xml中的规则.

我正在运行Tomcat 7.在web.xml中我有......

  <filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    <init-param>
      <param-name>confReloadCheckInterval</param-name>
      <param-value>120</param-value>
    </init-param>
    <init-param>
      <param-name>logLevel</param-name>
      <param-value>INFO</param-value>
    </init-param>
  </filter>
Run Code Online (Sandbox Code Playgroud)

当我更改<to>urlrewrite.xml中元素的值时,尝试执行该规则会导致异常.

抛出java.lang.ClassNotFoundException:org.apache.jsp.s1.content.about_002dus_jsp在java.net.URLClassLoader的$ 1.run(URLClassLoader.java:366)在java.net.URLClassLoader的$ 1.run(URLClassLoader.java:355)在位于org.apache的org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132)的java.net.URLClassLoader.findClass(URLClassLoader.java:354)中的java.security.AccessController.doPrivileged(Native Method). org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:145)中的jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)位于org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java: 172)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)atg.apache.jasper.servlet.JspServlet .service(JspServlet.java:334)位于org.apache.catalina.core.ApplicationFilterChain.internalD的javax.servlet.http.HttpServlet.service(HttpServlet.java:727)oFilter(ApplicationFilterChain.java:303)org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)at org .apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite (RuleChain.java:176)在org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)在org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)在org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:389)位于org.apache.catalina.core.ApplicationFilterChain的org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241). doFilter(ApplicationFilterChain.java:208)在org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispa)tcher.java:748)org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486)位于org.apache.catalina的org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) .core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338)org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213)org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain)的.java:171)在org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)在org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)在有机tgkey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:389)org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:208)at au.com.pawsforlife.vizsla.controller.UserFilter.doFilter(UserFilter.java:81)at或 g.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:220)org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)atg.apache.catalina .core.StandardHostValve.invoke(StandardHostValve.java:171)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) )org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)org.apache.coyote.http11.AbstractHttp11Processor.进程(AbstractHttp11Processor.java:1070)org.apache.coyote.AbstractProtocol $ AbstractCon nectionHandler.process(AbstractProtocol.java:611)在org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:314)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615)在org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)在java.lang.Thread.run (Thread.java:745)

有谁知道为什么会这样,或至少如何解决它?

谢谢!

java tomcat urlrewriter tomcat7 tuckey-urlrewrite-filter

8
推荐指数
1
解决办法
2216
查看次数

使用PCRE表达式重写URL - 将前缀附加到除一个模式之外的所有传入URI

我正在使用匹配表达式https://([^/]*)/(.*)并将表达式替换为constantprefix/$ 2并尝试通过向所有URL添加"/ constantprefix"来重写传入的URL

对于以下网址,它按预期工作:

  1. https:// hostname/incomingURI正在转换为/ constantprefix/incomingURI
  2. https:// hostname /正在转换为/ constantprefix/
  3. https://hostname/login/index.aspx正在转换为/constantprefix/login/index.aspx

我对已经以/ constantprefix开头的URL有问题,我在输出URL中看到两个/ constantprefix/constantprefix,我不想找,有什么办法可以避免吗?

如果传入的URL是https://hostname/constantprefix/login/index.aspx,那么输出的URL将变为https://hostname/constantprefix/constantprefix/login/index.aspx 我可以知道如何从匹配中避免/ constantprefix/constantprefix表达?

regex urlrewriter pcre regex-greedy

2
推荐指数
1
解决办法
344
查看次数

如何阻止UrlRewriter剥离我的+符号

我在我的应用程序中使用了Intelligencia的UrlRewriter,我遇到了一个问题,即我设置的规则似乎是从我的URL中删除了+符号.

例如,我想要网址,/category/catname/+tag+tag但在我看来/category/catname/ tag tag

有没有人有任何想法,这是我的正则表达式?我已经在监管机构中尝试了它并且匹配得很好.

<rewriter>
  <rewrite url="^/content/(.+)$" to="~/page.aspx?name=$1" />
  <rewrite url="^/category/(.+)$" to="~/catalog.aspx?category=$1" />
  <rewrite url="^/product/(.+)$" to="~/catalog.aspx?product=$1" />
  <rewrite url="~/login/" to="~/login.aspx"/>
</rewriter>
Run Code Online (Sandbox Code Playgroud)

c# regex asp.net urlrewriter

1
推荐指数
1
解决办法
218
查看次数

使用Tuckey URL重写时获取查询字符串

我有以下规则:

<rule>
     <from>^/users/(.*)$</from>
     <to last="true">/users.do$1</to>
</rule>
Run Code Online (Sandbox Code Playgroud)

我想匹配以下网址:

http://localhost:8077/users/?elemsPerPage=10
Run Code Online (Sandbox Code Playgroud)

并将其重定向到:

http://localhost:8077/users.do?elemsPerPage=10
Run Code Online (Sandbox Code Playgroud)

问题是当url rewriter引擎找到"?"时 url中的字符在$ 1匹配参数中不返回任何其他内容.它既不会将参数添加到查询字符串中.有任何想法吗?

java regex urlrewriter url-rewriting tuckey-urlrewrite-filter

1
推荐指数
2
解决办法
5521
查看次数