例如:
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 )
我使用这样的东西将 css 文件夹中的 css 脚本组合到一个串联文件中:
RewriteRule ^css/(.*'.css) /combine.php?file=$1
在大多数情况下,您将使用mod_rewrite来重定向URL。您应该将以下内容放在 .htaccess 文件中(如果您的服务器支持它):
RewriteEngine on
RewriteRule ^/?(.+)'.css$ process-css-files.php?name=$1
RewriteRule ^/?(.+)'.(jpg|jpeg|gif|png)$ process-image-files.php?name=$1&extension=$2
这将解决您问题的第一部分(我认为)。我确信有一种方法可以让 .htaccess 在重写 URL 之前检查文件是否存在,但我对 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
}
?>
我相信
所有这些都可以通过.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]