У меня есть этот файл .htaccess:
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase "/d/IT2 Tryggheim/it prosjekt 2011 - 2. termin/css/"
RewriteRule ^css/(.*\.(css|less))$ rewrite.php?file=$1 [NC]
А внутри папки css у меня есть файл rewrite.php, который выглядит следующим образом:
#$file = $_GET['file'];
$file = dirname($_SERVER['SCRIPT_FILENAME']) . '/' . $_GET['file'];
if(file_exists( $file ))
{
$content = file_get_contents($file);
# TODO: add code that parses the $content variable
echo $content;
}
else
{
echo "Weeeee! The file (<i>$file</i>) does not exist! :D <br /> <br />";
}
Этовсе проверено на Wampserver.Если я сразу перейду к этому пути, он будет работать:
http://localhost/d/IT2%20Tryggheim/it%20prosjekt%202011%20-%202.%20termin/css/deafult.css
Если у меня есть файл, один каталог которого содержит следующий HTML, он не будет работать:
<link rel="stylesheet" type="text/css" href="css/deafult.css" />
Или, это не будет работать, если я не отключу .htaccess, тогда это будет работать.Итак, как мне получить php для загрузки файла?
Альтернативы для $ file, которые я пробовал и которые не работают
$file = dirname($_SERVER['SCRIPT_FILENAME']) . '/css/' . $_GET['file'];
$file = '/css/' . $_GET['file'];
$file = 'css/' . $_GET['file'];
$file = './css/' . $_GET['file'];
Otherчто я пробовал
- Пробовал использовать include вместо file_get_contents
- Пробовал жесткое кодирование в имени файла ('deafult.css') вместо использования переменной $ _GET