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


How to redirect *.css to script.php file in HTACCESS? (Not index)

例如:

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]