如何将* .css重定向到HTACCESS中的script.php文件? (不是索引)

时间:2011-05-13 21:08:50

标签: php apache .htaccess

例如:

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 )

3 个答案:

答案 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]