如果我请求页面http://www.mysite.com/frogs/并使用这些重写规则:
# See if the requested URL is in our cache. If so, serve it
RewriteCond /var/www/cache%{REQUEST_FILENAME}.html -f
RewriteRule (.*) /var/www/cache/$1.html [L,QSA]
Apache 尝试查找名为“frogs/.html”的文件,但当然会失败。我想使用不带尾部斜杠的 %{REQUEST_FILENAME},这样它就会查找并提供“frogs.html”。
我怎样才能让它做到这一点?
答案1
编辑:
测试一下。它应该会删除尾部的斜杠:
RewriteCond /var/www/cache/$1.html -f
RewriteRule ^/(.+)/*$ /var/www/cache/$1.html [L, QSA]
原因是您可以从 RewriteCond 中反向引用 RewriteRule 中括号内的正则表达式。请参阅mod_rewrite 文档有关反向引用流程的更多信息。