【发布时间】:2010-12-13 20:50:42
【问题描述】:
我有一套相当复杂的重写规则来为我的网站页面提供漂亮的 URL。现在为了处理搜索结果的分页,我使用了 2 个重写规则:
RewriteRule ^search/([0-9]+)$ /cgi-bin/search.pl?page=$1 [NC,L,QSA]
RewriteRule ^search$ /cgi-bin/search.pl [NC,L,QSA]
这些处理 URL,例如:
http://example.com/search
http://example.com/search/2
http://example.com/search/1000
我想知道如何将这些组合成 1 个重写规则,以便正确调用 search.pl 脚本,并且仅在指定页面时才传递页面参数。我知道这是一个非常基本的问题,但我似乎无法在任何地方找到答案。感谢您的帮助!
【问题讨论】:
-
看起来前几个答案的方向有点不对。我更多地考虑重做正则表达式,以便页面参数是可选的。可能类似于: RewriteRule ^search(/([0-9]+))?$ /cgi-bin/search.pl?page=$1 [NC,L,QSA] 但它需要实际工作。
-
@Russell C.:将
$1替换为$2,因为您希望匹配第二个括号组。 -
对 URL 进行了两个单独的更改 - (1) 转到 cgi-bin/search.pl 和 (2) 如果有页码,则将其作为参数传递。这是两个 RewriteRules 是合乎逻辑的。你为什么要做一个?
标签: mod-rewrite paging