.htaccess重定向前导零URL以清除URL

时间:2014-07-08 19:51:05

标签: apache .htaccess mod-rewrite redirect

假设我有这样的网址(在数字前面带前导零):

http://example.com/directory/page/0023/
http://example.com/directory/page/01/

如何在没有前导零的情况下将它们重定向到URL?例如:

http://example.com/directory/page/23/
http://example.com/directory/page/1/

我在.htaccess文件中使用了这段代码来管理我这种性质的网站的重定向:

RewriteCond %{THE_REQUEST} \ /+directory/(?:page|)/1/
RewriteRule ^ /directory/? [L,R=301]

如果有任何方式可以改变这段代码以解决我的问题(我不知道如何做),那就太好了。

1 个答案:

答案 0 :(得分:0)

尝试:

RedirectMatch 301 ^/directory/page/0+([0-9]+)/ /directory/page/$1 

但是,如果这会干扰您当前拥有的规则,您也可以将其转换为使用mod_alias:

RedirectMatch 301 /directory/(?:page|)/1/ /directory/

或者同时使用mod_rewrite:

RewriteCond %{THE_REQUEST} \ /+directory/page/0+([0-9]+)/
RewriteRule ^ /directory/page/%1/[L,R=301]

RewriteCond %{THE_REQUEST} \ /+directory/(?:page|)/1/
RewriteRule ^ /directory/? [L,R=301]