好的,所以这是我的RewriteRule:
RewriteRule ^books/book-([0-9]+)/(.*[^/])$/? authors/book-$1/$2 [R=301,L]
因此,如果有人转到www.example.com/books/book-5/some-book-title
,则会将其重定向到www.example.com/authors/book-5/some-book-title
。这个位工作正常。
然而,我遇到的问题是:
www.example.com/books/book-5/some-book-title/still-more-stuff/still/more/stuff
它会转发到www.example.com/authors/book-5/some-book-title/still-more-stuff/still/more/stuff
。
我希望它在www.example.com/books/book-5/some-title/
之后停止< - 它应该停在这里!!!
在/some-title/
< - 之后不应允许更多参数,否则它应该忽略它们。
我怎样才能做到这一点?只抓住第一个参数/some-title/
,否则抛出404?我认为通过放置[^/]
位,它会在找到转发/
时停止。
由于
答案 0 :(得分:1)
像这样调整你的正则表达式:
RewriteRule ^books/(book-\d+/[^/]+) authors/$1 [R=301,L,NE,NC]
问题实际上是你的正则表达式中存在.*
。