例如:
HANDLER *.css --> process-css-files.php
HANDLER *.(jpg|png|gif|jpeg) --> process-image-files.php
另外如何:
if (*.css EXISTS) then
include( THAT_FILE )
else
process_URL-->( process-css-files.php )
答案 0 :(得分:2)
我使用类似的东西将css文件夹中的css脚本组合到单个连接文件中:
RewriteRule ^css/(.*\.css) /combine.php?file=$1
答案 1 :(得分:1)
在大多数情况下,您将使用mod_rewrite重定向网址。您应该将以下内容放在.htaccess文件中(如果您的服务器支持它):
RewriteEngine on
RewriteRule ^/?(.+)\.css$ process-css-files.php?name=$1
RewriteRule ^/?(.+)\.(jpg|jpeg|gif|png)$ process-image-files.php?name=$1&extension=$2
这将解决你问题的第一部分(我认为)。我确定有一种方法可以在重写URL之前让.htaccess检查文件是否存在,但我对PHP更有经验,所以我可能只是总是重定向到PHP文件,然后让PHP完成所有操作检查和诸如此类的:
<?php
$name = $_GET['name'].'.css';
header('Content-type: text/css');
if (file_exists($name)) {
echo file_get_contents($name);
} else {
// do whatever
}
?>
答案 2 :(得分:0)
我相信所有这些都可以通过.htaccess规则来处理。试试这个:
Options +FollowSymlinks -MultiViews
RewriteEngine on
RewriteRule ^([^.]*\.(jpe?g|png|gif))$ process-image-files.php?img=$1 [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]*\.css)$ process-css-files.php?css=$1 [L,NC]