Нужна помощь с .htaccess

leo3331
На сайте с 07.01.2007
Offline
154
518

Здравствуйте.

В файле .htaccess такая строка

Options -Indexes

Какие строки нужно в него добавить что бы при конкретном запросе к примеру

на http://site.ru/index.php выдавался не файл который лежит в корне сайта index.php,

а файл из другой дерриктории /cashe/file/1.html

Но если браузер юзера поддерживает gzip то выдавал не /cashe/file/1.html, а /cashe/file/1.gz

заранее сжатый файл в общем и отправлял заголовок что данные в gzip сжаты.

Таких ссылок надо указать штук 20.

Делается это для того что бы не через php это все зделать а через .htaccess т.к. поидее значительно быстрее будет отдача файла чем через php скрипт.

Делал тест

ab -c 50 -n 30000 http://site.ru/

получается 37 сек на весь тест, но тут выполняется index.php и на уровне php Дергается файл.

Поидее если через .htaccess то будет намного быстрее.

Выручите плз. Спасибо.

siv1987
На сайте с 02.04.2009
Offline
427
#1
leo3331:
Поидее если через .htaccess то будет намного быстрее.

Не настолько сильно как вам кажется.

RewriteEngine On

RewriteRule ^index\.php cashe/file/1.html

RewriteRule ^index2\.php cashe/file/2.html

RewriteRule ^index3\.php cashe/file/3.html

RewriteRule ^index20\.php cashe/file/20.html

#поддержка gzipа

RewriteCond %{HTTP:Accept-Encoding} gzip

RewriteRule ^(cashe/file/[^/]+)\.html$ $1.gz

leo3331
На сайте с 07.01.2007
Offline
154
#2

ну не скажите :)

Скорость в 5 раз увеличилоась.

Оптимизировал стало в 11 раз быстрее, а через .htaccess в 51 раз.

Ну уже заддосить меня будет сложнее в 50 раз :)

Спасибо.

Только вот поддержка gzip почему то не работает

---------- Добавлено 15.04.2013 в 21:56 ----------

заголовок выдает

Content-Type: application/x-gzip

а должен:

Content-Encoding: gzip

---------- Добавлено 15.04.2013 в 22:03 ----------

и плюс нужна проверка файла, если файла нет то выполняется скрипт по умолчанию

siv1987
На сайте с 02.04.2009
Offline
427
#3
leo3331:
и плюс нужна проверка файла, если файла нет то выполняется скрипт по умолчанию

Ну добавьте проверку, телепатов здесь нет, я не знаю какой у вас там шаблон или какой скрипт по умолчанию. А вообще если ставьте реврайт то файл должен быть.

leo3331:
Только вот поддержка gzip почему то не работает

Добавить


<FilesMatch \.gz>
ForceType text/html
Header set Content-Encoding: gzip
</FilesMatch>

Лучше всего gzip файлы переименовать на filename.html.gz, поменять регулярное выражение в mod_rewrite, и в FilesMatch написать \.html\.gz

leo3331
На сайте с 07.01.2007
Offline
154
#4

пишет Internal Server Error

при вставке

<FilesMatch \.gz>

ForceType text/html

Header set Content-Encoding: gzip

</FilesMatch>

siv1987
На сайте с 02.04.2009
Offline
427
#5

Чтобы Header set работал, на сервере должен быть такой модуль http://httpd.apache.org/docs/2.2/mod/mod_headers.html

Можно еще посмотреть в логах, что ему не нравиться.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий