根据文件是否存在重写

时间:2012-07-19 10:41:17

标签: php apache .htaccess mod-rewrite url-rewriting

我正在我的数据库驱动的网站上实现缓存。 我将缓存文件保存到/ cache / as id.html

我有像http://www.example.com/view/article/id/12338.html

这样的网址

现在我需要检查这个12338.html文件是否存在于缓存中。如果它存在,它应该是服务器,否则应该重写为/viewArticle.php?id=12338

所以这就是我需要的:

1)提取身份证号码,例如在这种情况下是12338。

2)检查/cache/id.html是否存在,例如/cache/12338.html,在这种情况下服务并退出。

3)或发送/viewArticle.php?id=12338

我需要哪些重写条件和规则?特别是从请求文件名中提取id。

1 个答案:

答案 0 :(得分:0)

将此.htaccess文件放在服务器文档根目录

<ifModule mod_rewrite.c>
  RewriteEngine on

  RewriteRule view/article/id/(.*).html$ /cache/$1.html [NC]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^cache(.*)\.html$ /viewArticle.php?id=$1  [NC]
</IfModule>