RewriteRule 无法按预期工作 .htaccess
RewriteRule not working asa expected .htaccess
好的,这是我的 RewriteRule:
RewriteRule ^books/book-([0-9]+)/(.*[^/])$/? authors/book-/ [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?我认为通过放置 [^/]
位,它会在找到前向 /
.
时停止
谢谢
像这样调整你的正则表达式:
RewriteRule ^books/(book-\d+/[^/]+) authors/ [R=301,L,NE,NC]
问题实际上是在您的正则表达式中存在 .*
。
好的,这是我的 RewriteRule:
RewriteRule ^books/book-([0-9]+)/(.*[^/])$/? authors/book-/ [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?我认为通过放置 [^/]
位,它会在找到前向 /
.
谢谢
像这样调整你的正则表达式:
RewriteRule ^books/(book-\d+/[^/]+) authors/ [R=301,L,NE,NC]
问题实际上是在您的正则表达式中存在 .*
。