2017-09-07 116 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