RewriteRule不能正常工作.htaccess

时间:2015-01-20 13:39:42

标签: .htaccess mod-rewrite url-rewriting

好的,所以这是我的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?我认为通过放置[^/]位,它会在找到转发/时停止。

由于

1 个答案:

答案 0 :(得分:1)

像这样调整你的正则表达式:

RewriteRule ^books/(book-\d+/[^/]+) authors/$1 [R=301,L,NE,NC]

问题实际上是你的正则表达式中存在.*