我正在尝试以下重定向:
任何URL,例如:
/about/apple/1
/about/green
/about/apples
/about/pears/1
收件人:
/about/apple
使用以下方法,这不起作用:
RewriteRule ^about/(!apple) /about/apple [R=301,L]
以下测试线工作正常:
RewriteRule ^about/apples /about/apple [R=301,L]
我试过:
RewriteRule ^about/!(apple) /about/apple [R=301,L]
RewriteRule ^about/(?!apple) /about/apple [R=301,L]
RewriteCond %{REQUEST_FILENAME} !(about/apple)
RewriteCond %{REQUEST_FILENAME} about(.*)
RewriteRule . /about/apple [R=301,L]
也试着把它放进一个重写前手,但没有工作。
1条答案
按热度按时间wxclj1h51#
您的正则表达式模式
^about/(?!apples)
与您想要重定向的uri都不匹配。它匹配/about/foobar
,但不匹配/about/apples
或/about/apples/foobar
,因为您已经在模式中否定了apples
子串。您可以使用
这会将
/about/apples/
或/about/apples/foobar
重定向到/about/foobar
。请确保在测试之前清除浏览器缓存。