First RewriteRule 被忽略

问题描述

我正在尝试创建一个重写规则,用于检测请求是否来自用户代理并处理 URL,如果没有重定向到索引页面。第一条规则似乎不起作用,它直接进入第二条规则。我不确定我做错了什么,我在满足条件后添加了标志 [L] 来停止规则。好像没有满足第一条规则的条件,不知从何下手。

RewriteCond  %{HTTP_USER_AGENT}  googlebot
RewriteRule  ^/(.*)$ /  [L]
RewriteCond %{REQUEST_URI} !^/resources/.*$
RewriteCond %{SERVLET_PATH} !-f
RewriteRule ^/(.*)$ /index.html [L]

解决方法

您能否仅根据您显示的示例尝试以下操作。在测试您的网址之前,请务必清除浏览器缓存。

RewriteEngine ON
RewriteCond  %{HTTP_USER_AGENT}  googlebot [NC]
RewriteRule  ^ /  [L]

RewriteCond %{REQUEST_URI} !^/resources [NC]
RewriteCond %{SERVLET_PATH} !-f
RewriteRule ^(.*)/?$ index.html [L]