假设我有这样的网址(在数字前面带前导零):
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]
如果有任何方式可以改变这段代码以解决我的问题(我不知道如何做),那就太好了。
答案 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]