htaccess重写规则忽略url的结尾部分

时间:2014-06-05 11:32:04

标签: apache .htaccess mod-rewrite

我正在将一个站点从IIS移动到Apache,部分转换需要更改URL处理。

当前的网址格式为:

http://example.com/articles/tabid/110/ID/1691/simple_friendly_name_of_page.aspx

1691是帖子的唯一ID。它由两位或更多位数组成。

我想使用.htaccess以忽略“simple_friendly_name_of_page.aspx”。请记住,前面提到的aspx页面可以包含ASCII范围之上的UTF-8字符(希伯来语,希腊语等) 实质上,我想永久(301)重定向

的请求
http://example.com/articles/tabid/110/ID/1691/simple_friendly_name_of_page.aspx

http://example.com/articles/tabid/110/ID/1691

我想这与

有关
RedirectMatch 301 http://example.com/articles/tabid/110/ID/(.*)/(.*)

但我无法掌握redirect / mod-rewrite其他部分所需的正则表达式。 任何帮助将非常感激。 提前谢谢!

1 个答案:

答案 0 :(得分:0)

RewriteEngine on

RewriteRule ^articles/tabid/([0-9]+)/ID/([0-9]+)/(.*)$ articles/tabid/$1/ID/$2 [R=301]

RedirectMatch 301 ^/articles/tabid/([0-9]+)/ID/([0-9]+)/(.*)$ http://example.com/articles/tabid/$1/ID/$2