PDA

Просмотр полной версии : кодировка при использовании fl_staticfilecache


demav
03.07.2007, 16:14
Без fl_staticfilecache сайт выводится нормально, кодировка utf-8.

Такая строка есть в html страницы:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

При использовании fl_staticfilecache результирующий файл такой же, но браузер самостоятельно определяет кодировку windows-1251 и переключает на нее.
В результате - страница кракозябрами.

В чем может быть дело?

PhilD
03.07.2007, 16:23
в Апаче кодировка не стоит?

void
03.07.2007, 16:26
Браузер не самостоятельно определяет кодировку - это ему "помогает" веб-сервер, который шлёт заголовок Content-type:
Нужно отключить такое поведение апача через .htaccess: CharsetDisable On

demav
03.07.2007, 16:32
Это все крутится на виртуальном сервере у хостера. Что там в апаче - неизвестно.
Если ставить CharsetDisable в htaccess, то сайт валится. Похоже, такой инструкции в htaccess не предусмотрено.
Ну а в httpd.conf у меня доступа нет.

Что еще посоветуете?

PhilD
03.07.2007, 16:54
http://www.w3.org/International/questions/qa-htaccess-charset

AddCharset UTF-8 .html

А если стоит неотмершая по ошибке экзотика типа русского Апача, то

Если у вас на сервере стоит Apache/RUS, то рекомендуется отключить всякую автоматическую перекодировку, добавив в .htaccess директиву

CharsetTurnOff On

(работает начиная с версии Apache/RUS PL20).

http://koi8.pp.ru/prosto.html

demav
03.07.2007, 17:51
AddCharset UTF-8 .html



Спасибо! Это помогло.

Valery Romanchev
03.07.2007, 18:20
Без fl_staticfilecache сайт выводится нормально, кодировка utf-8.


а почему fl_staticfilecache?
он же вроде хуже чем nc_staticfilecache (http://typo3.org/extensions/repository/view/nc_staticfilecache/current/) ?

demav
03.07.2007, 18:35
А я и не знал про nc_staticfilecache :)

Поставлю, посмотрю.

Спасибо за подсказку

demav
03.07.2007, 23:30
не могу настроить nc_staticfilecache

файлы в кэше создаются
но потом не выводятся вместо php

полагаю, дело в .htaccess
можете привести пример работающего .htaccess?

PhilD
04.07.2007, 00:22
RewriteEngine On
RewriteRule ^(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin| uploads|showpic\.php)/ - [L]
RewriteRule ^typo3$ typo3/index_re.php [L]
#------------------------------------------------------------------------------
# beginning of static file cache ruleset

# Check for Ctrl Shift reload
RewriteCond %{HTTP:Pragma} !no-cache
RewriteCond %{HTTP:Cache-Control} !no-cache

# Don't cache HTTPS traffic by default. You may choose to comment out this
# option if your site runs fully on https. If your site runs mixed, you will
# not want https traffic to be cached in the same typo3temp folder where it can
# be requested over http.
# Enable this if you use a mixed setup.
#RewriteCond %{HTTPS} off

# NO backend user is logged in. Please note that the be_typo_user expires at the
# end of the browser session. So, although you have already logged out of the
# backend, you will still have to either restart your browser or remove the
# cookie manually for this rule to work.
RewriteCond %{HTTP_COOKIE} !be_typo_user [NC]

# NO frontend user is logged in. Logged in frontend users may see different
# information than anonymous users. But the anonymous version is cached. So
# don't show the anonymous version to logged in frontend users.
RewriteCond %{HTTP_COOKIE} !nc_staticfilecache [NC]

# We only redirect GET requests
RewriteCond %{REQUEST_METHOD} GET

# We only redirect URI's without query strings
RewriteCond %{QUERY_STRING} ^$

# We only redirect if a cache file actually exists

# Uncomment the following two lines if you use realurl:
RewriteCond %{DOCUMENT_ROOT}/typo3temp/tx_ncstaticfilecache/%{HTTP_HOST}/%EQUEST_URI}index.html -f
RewriteRule .* typo3temp/tx_ncstaticfilecache/%{HTTP_HOST}/%{REQUEST_URI} [L]

# Uncomment the following two lines if you use simulateStaticDocuments:
#RewriteCond %{DOCUMENT_ROOT}/typo3temp/tx_ncstaticfilecache/%{HTTP_HOST}/%REQUEST_URI}/index.html -f
#RewriteRule .* typo3temp/tx_ncstaticfilecache/%{HTTP_HOST}/%{REQUEST_URI}/index.html [L]

# end of static file cache ruleset
#------------------------------------------------------------------------------

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L]

demav
04.07.2007, 12:10
Да, htaccess тот же, что и у меня и в документации.

Выяснил, что проблема в разрешениях на папки, которые создаются модулем. Если не стоит разрешение "выполнить", то файл в этой папке невидим.

Что можете посоветовать?

P.S. В примере небольшая ошибка, строка должна быть такая:

RewriteCond %{DOCUMENT_ROOT}/typo3temp/tx_ncstaticfilecache/%{HTTP_HOST}/%{REQUEST_URI}index.html -f

PhilD
04.07.2007, 13:43
нда... не пользуйтесь формами у хостера для редактирования файлов :(