Apache 修改重写问题

Apache 修改重写问题,apache,mod-rewrite,Apache,Mod Rewrite,这个是怎么工作的: RewriteEngine On RewriteCond %{REQUEST_URI} ^/book/blabla$ RewriteRule ^.+$ /book/?name=blabla [NC,L] 但是这个没有 RewriteEngine On RewriteRule ^/book/blabla$ /book/?name=blabla [NC,L] 我已经尝试了很多方法,但这让我很困惑。如果在.htaccess文件中使用mod_rewrite,在测试规则之前:

这个是怎么工作的:

RewriteEngine On

RewriteCond %{REQUEST_URI} ^/book/blabla$
RewriteRule ^.+$ /book/?name=blabla [NC,L]
但是这个没有

RewriteEngine On

RewriteRule ^/book/blabla$ /book/?name=blabla [NC,L]

我已经尝试了很多方法,但这让我很困惑。

如果在.htaccess文件中使用mod_rewrite,在测试规则之前:

如下所示,
RewriteRule
可用于每个目录配置文件(.htaccess)。在这种情况下,它将在本地执行操作,在处理之前剥离本地目录前缀,并仅对其余部分应用重写规则

这意味着如果在根目录(
/
)的.htaccess文件中使用mod_rewrite,则该路径前缀将从URL路径中删除。所以
/book/blabla
被简化为
book/blabla
。您的规则模式必须反映该行为:

RewriteRule ^book/blabla$ /book/?name=blabla [NC,L]