1

我想重写一个像http://www.example.com/videos这样的请求,以便 Apache 从文档根目录中的缓存目录中获取它我需要两个条件才能发生这种情况:

  1. 该文件没有扩展名,所以没有video.css等
  2. 该文件存在于缓存中/

如果不满足上述条件,我想将请求路由到 index.php。

我应该在我的 .htaccess 中添加什么来完成此操作?

4

2 回答 2

2

如果您创建带有.html扩展名的缓存文件,也许这样的东西对您有用。

RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{DOCUMENT_ROOT}/cache/%{REQUEST_URI}\.html -f
RewriteRule .* cache/%{REQUEST_URI}\.html [L]
于 2013-10-16T09:12:18.167 回答
1

试试这两条规则:

RewriteEngine On

#forward to cache/<file> if it exists in %{DOCUMENT_ROOT}/cache
RewriteCond %{DOCUMENT_ROOT}/cache/$1 -f
RewriteRule ^([^/.]+)/?$ /cache/$1 [L]

# otherwise forward to /index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/cache/$1 !-f
RewriteRule ^ /index.php [L]
于 2013-10-16T09:11:23.473 回答