【问题标题】:URLRewrite - Rewritten url is not workingURLRewrite - 重写的 url 不起作用
【发布时间】:2016-12-19 09:59:48
【问题描述】:

以下是我的配置:

<rule>
    <from>^/xf/(.*)$</from>
    <to>/xfDetail?id=$1</to>
</rule>

我访问的网址是http://mydomain/xf/63e2d96047754072a340610。但它说找不到该页面。

我是否配置不正确?

这是我的工作:

<rule>
    <from>/jr</from>
    <to>/jr/index</to>
</rule>

顺便问一下,有没有办法调试这个?

谢谢!

【问题讨论】:

    标签: java url-rewriting


    【解决方案1】:

    您的重写规则不会与任何 URL 匹配,因为它需要在前一个域之后紧跟“/”。

    所以,规则应该是:

    ^xf/(.*)$
    

    还有,这里是解释

    如果你使用的是 Apache 和 mod_rewrite,你可以看看这个问题:How to debug Apache mod_rewrite

    【讨论】:

    • 谢谢。但似乎它不适用于我的案例 ToT
    • 我找到了根本原因,如我的回答所示。 ^/xf/(.*)$ 来自手册,这是我第一次使用它,不确定与旧版本相比是否有任何区别。无论如何感谢您的帮助。
    【解决方案2】:

    原来我有另一个规则来处理这样的请求:

    <rule>
        <from>/xf</from>
        <to>/xf/index</to>
    </rule>
    

    URLRewrite的默认匹配类型是正则表达式,所以我的请求url匹配/xf,那么实际的url是/newHouse/index/xxxxx。显然没有这个页面存在。

    所以,为了让它工作,我必须把它改成这样:

    <rule>
        <from>/xf$</from>
        <to>/xf/index</to>
    </rule>
    

    $ 需要在from 的末尾。

    【讨论】:

      猜你喜欢
      • 2013-11-08
      • 2016-12-18
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-03
      相关资源
      最近更新 更多