Кэширование и php: обслуживание сгенерированного статического файла для ускорения запросов - PullRequest
0 голосов
/ 28 октября 2010

В коде мой вопрос:

if(file_exists( c/ $requesturl ) 
serve( c/ $requesturl )
else
serve( index.php?blah )

В человеческом виде:

Мой скрипт генерирует CSS.Это довольно интенсивно, поэтому я встроил кеширование.

Люди запрашивают: http://domain.com/css/1lfi4wg.css2

Что переписано:

RewriteRule ^([a-zA-Z0-9\-]*)\.css$  index.php?cssfilename=$1&generate

Это работает.После того, как вышеупомянутый посещен, генерируется кеш-файл, который также работает:

http: // domain.com/css / c / 1lfi4wg.css2

Теперь яхотите использовать сгенерированный файл (/ c / *) в качестве исходного запроса.Теперь я делаю это в самом файле php, но я думаю, что сделать это с htaccess быстрее.

Теперь у меня есть это, которое не работает:

RewriteCond %{DOCUMENT_ROOT}/c/%{REQUEST_FILENAME} -f
RewriteRule ^(.*)\.css$ %{DOCUMENT_ROOT}/c/$1.css [L]

1 Ответ

0 голосов
/ 28 октября 2010

REQUEST_FILENAME уже является абсолютным путем к файловой системе.Попробуйте вместо этого путь URI в REQUEST_URI или соответствующую строку шаблона RewriteRule:

RewriteCond %{DOCUMENT_ROOT}/c%{REQUEST_URI} -f
RewriteRule ^.*\.css$ %{DOCUMENT_ROOT}/c%{REQUEST_URI} [L]
# OR
RewriteCond %{DOCUMENT_ROOT}/c/$0 -f
RewriteRule ^.*\.css$ %{DOCUMENT_ROOT}/c/$0 [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...