Apache .htaccess将前导零URL重定向到清除URL

Apache .htaccess将前导零URL重定向到清除URL,apache,.htaccess,mod-rewrite,redirect,Apache,.htaccess,Mod Rewrite,Redirect,假设我有这样的URL,在数字之前有前导零: 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

假设我有这样的URL,在数字之前有前导零:

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]
如果有什么方法可以修改这段代码,以解决我一直在思考的问题,那就太好了。

试试:

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]
重写规则目录/page/0+\d+/?$directory/page/$1/