2017-09-07 158 views
1

我想在我的.htaccess中解决此问题.htaccess如何解决忽略重定向

我想重定向所有匹配例如。 /2017/02/some-slug/some-slug

,但我想忽略这样/2017/02/page/3

我已经成功怎么办第一部分网址:

RewriteRule ^/([0-9]{4})/([0-9]{2})/([a-z0-9-\/]+)$ /$3 [R=301,L]

我有第二个部分是忽略的问题。有任何想法吗?

回答

1

你可以在你的正则表达式模式中使用负前瞻:

RewriteRule ^/?\d{4}/\d{2}/(?!page/\d+/?$)(.+)$ /$1 [R=301,L,NC,NE] 

这里(?!page/3/?$)是当year/month/后跟page/3断言故障排除模式。

+0

我快到了。当我这样写:'RewriteRule^/?\ d {4}/\ d {2} /(?!(page /([0-9] +)/?)$)(。+)$/$ 1 [R = 301,L,NC,NE]'并尝试输入'/ 2017/12/page/2'将它重定向到'/ page/2' – shpyo

+1

我在我的Apache和'http:// localhost/2017/02/page/2'不会重定向。确保将此规则保留为第一条规则并完全清除浏览器缓存。 – anubhava

+1

是的,我的错!谢谢你的帮助! – shpyo