<
rule
>
<
from
>
^/article.asp\?id=(.*)$
</
from
>
<
to
type
="redirect"
>
/entry/$1.jhtml
</
to
>
</
rule
>
但是我这样的连接总是匹配不到,只要去掉那个?就可以了。这个正则表达式是没有问题的。/article.asp?id=64是可以匹配的到的。
后来看3.0的manual (http://tuckey.org/urlrewrite/manual/3.0/)才发现原来是这个的问题。
<urlrewrite> element
The top level element.
Attribute
Possible Value
Explanation
default-match-type (optional)
|
regex
(default) |
All rules and thier conditions will be processed using the Java Regular Expression engine (unless match-type
is specified on a rule). |
wildcard |
All rules and thier conditions will be processed using the Wildcard Expression engine
(unless match-type
is specified on a rule). |
decode-using (optional)
|
utf8
(default) |
When URL is decoded UTF-8 will be used. |
null |
Do not decode. |
[encoding] |
Any string representing a supported character encoding eg, ISO-8859-1. See Java Charset Object
for more info. |
use-query-string (optional)
|
false
(default) |
The query string will not
be appended to the url that the "from" element matches against. |
true |
The query string will be appended to the url that the "from" element matches against. |
use-context (optional)
|
false
(default) |
The context path will not
be added to the url that the "from" element matches against. |
true |
The context path will be added to the url that the "from" element matches against. |
就是那个use-query-string 的问题,默认的是不使用query-string就是把?后面的都忽略了。所以就不能匹配到了。只要在<urlrewrite>里面加一个属性就可以了。
<
urlrewrite
use-query-string
="true"
>
</
urlrewrite
>
分享到:
相关推荐
标题 "urlrewrite重写URL伪静态请求路径" 涉及到的是Web开发中的一个重要概念——URL重写,这是为了优化网站的SEO(搜索引擎优化)和用户体验而进行的一种技术手段。URL重写允许我们将复杂的动态URL转换为简洁、易于...
在Nginx服务器配置中,`rewrite`指令用于URL重写,这在创建动态到静态页面的重定向、实现URL路由、或者根据特定条件改变URL结构时非常有用。当URL中包含问号(`?`)以及参数时,处理起来可能会有些复杂,因为问号及其...
在Web开发中,动态URL往往包含一系列参数,如问号(?)、等号(=)和与号(&),这些字符对于搜索引擎来说识别起来相对困难。而静态URL则通常以扩展名(如.html、.asp、.jsp等)结尾,它们看起来更像一个独立的文件...
3. 编写重写规则:例如,你可以使用`<rule>`标签定义一个规则,设置`<match url="动态URL模式" />`来匹配需要重写的URL,然后使用`<action type="Rewrite" url="伪静态URL" />`指定重写后的目标URL。 4. 测试和调试...
动态URL通常包含问号(?)、等号(=)以及参数,而静态URL则更符合人们日常的阅读习惯,看起来更加简洁和清晰。 **1. 什么是Rewrite** Rewrite是Apache服务器中的一种URL重写技术,通过使用.htaccess或者httpd....
使用rewrite规则时,可以根据传入的URL,匹配正则表达式,然后根据匹配的结果进行相应的URL替换,最后通过标志位控制重写行为。 rewrite规则的基本语法格式如下:rewrite <regex> <replacement> [flag]; 其中,...
2. **配置UrlRewrite.xml**:UrlRewriteFilter的工作原理是读取一个名为UrlRewrite.xml的配置文件,这个文件定义了各种URL重写规则。例如,你可以设置从"old-url"到"new-url"的映射,或者根据特定条件(如查询参数、...
动态URL往往包含问号(?)、等号(=)以及各种参数,这样的URL对于用户来说不够直观,同时也可能对搜索引擎的爬虫造成困扰。伪静态技术通过URL重写,使得动态网页的URL显示为没有这些特殊符号的静态链接形式,如"....
正则表达式是Rewrite规则中的核心,用于精确地匹配和提取URL中的各种模式。例如,你可以使用`^product/(\d+)$`来匹配形如`product/123`的URL,其中`\d+`表示一个或多个数字。在Rewrite规则中,正则表达式可以帮助...
URL(统一资源定位符)是网站页面的地址,动态URL通常包含数据库参数,如问号(?)、等号(=)和额外的变量,这使得URL看起来复杂且不友好。而静态URL则直接反映了网页的实际路径,没有这些动态参数,更易于理解和...
URL重写是Web开发中一...在这个实例中,"urlRewrite"可能是一个相关的项目或代码示例,它包含了具体的URL重写规则和配置文件。通过研究这个实例,你可以更好地理解如何在实践中应用URL重写技术,提升你的Web开发技能。
然而,实现过程中需要注意避免重写冲突,确保所有规则都能正确匹配和转换URL,并且要对已有的外部链接进行更新,以免造成404错误。 在实际操作中,可能还需要考虑到服务器性能、缓存策略以及多语言站点的URL设计等...
在Java Web开发中,我们可以使用多种技术实现URL重写,其中包括Apache的`mod_rewrite`模块(在使用Tomcat等非Apache服务器时,可能需要额外的中间件支持)以及Java内置的`Filter`机制。这里我们主要讨论使用Java ...
2. **URL重写**:对于ASP.NET Web Forms,可以使用UrlRewrite模块。在web.config中添加重写规则,如下: ```xml <rewrite> <match url="^articles/(\d+)$" /> <action type="Rewrite" url="ArticleDetails....
`<rule>`部分则定义了匹配和重写的规则,当URL匹配`^article/(.*)$`模式时,将执行重写动作,将捕获的数字部分作为查询字符串传递给`article.aspx`页面。 2. **规则解析**:在上述配置中,`{R:1}`是捕获组1的引用,...
问号匹配问题通常出现在URL中包含查询字符串(即URL中问号`?`后面的部分)。在上述规则中,如果URL中包含查询字符串,RewriteRule不会处理这部分。为了解决这个问题,我们需要使用`RewriteCond`配合`%{QUERY_STRING}...
1. **URL重写**:使用Apache的mod_rewrite模块或者Tomcat的RewriteFilter,通过配置规则将动态URL重定向到对应的JSP页面。例如,将`/article.html`映射到实际的`/article.jsp`。在Apache中,需要编辑.htaccess文件;...
用rewrite有个前提需要知道,一般用rewrite进行正则匹配只能匹配到网页的URI,也就是url中?前部分,?以后部分是请求参数。 问号后面的请求参数,在nginx用$query_string表 示,不能在rewrite中匹配到,需要用if判断 ...
3. **URL重写**:在使用URL重写(如mod_rewrite in Apache)时,可能需要根据重写规则调整参数添加的方式。 关于PHP与URL处理,还有一些相关的话题,例如: - **获取当前页面完整URL**:可以使用`$_SERVER['REQUEST...