|
|
|
[PHP]Отдача файла
|
|||
|---|---|---|---|
|
#18+
Привет. Задумался как правильно отдать файл с сайта пользователю. Мой скрипт роутинга на сайте получает все пути которые вводятся пользователем и обрабатывает. Т.е. даже если файл лежит в папке, то отдаётся он не просто вэб сервером, а через выставление хеадеров и readfile($url); Вопрос, насколько это правильно/ущербно , стоит переписать либо нет. думал заменить readfile на Код: php 1. 2. 3. 4. 5. 6. отдавай заранее заголовки. Правда опять же не ясно, будут ли тормоза, или всё должно работать на ура. ткните, в чем не прав и каков тру вэй) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2012, 13:21:37 |
|
||
|
[PHP]Отдача файла
|
|||
|---|---|---|---|
|
#18+
я бы так не делал, достаточна большая нагрузка таким образом файлы выдавать. .htaccess попробуй поправить: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?route=$1 [L,QSA] сперва мы проверяем, существует ли запрашиваемый файл, используя директиву RewriteCond, и, если нет, то перенаправляем запрос на index.php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2012, 13:43:29 |
|
||
|
[PHP]Отдача файла
|
|||
|---|---|---|---|
|
#18+
kalamfur, пришли .htaccess посмотрим как можно поправить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2012, 13:45:18 |
|
||
|
[PHP]Отдача файла
|
|||
|---|---|---|---|
|
#18+
А без всего этого файл вебсервером отдается как то не так? Опишите исходную задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2012, 13:45:27 |
|
||
|
[PHP]Отдача файла
|
|||
|---|---|---|---|
|
#18+
если вы хотите управлять доступом к файлам через php, то лучше использовать fgets нежели readfile. fgets работает быстрее для больших файлов, а readfile может выдавать ошибку переполнения буфера. если есть возможность, то лучше создавать уникальные ссылки на файл через shell командой ln http://rus-linux.net/MyLDP/consol/hdrguide/rusman/ln.htm имхо быстрее и избавит от многих потенциальных проблем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2012, 14:46:21 |
|
||
|
[PHP]Отдача файла
|
|||
|---|---|---|---|
|
#18+
zadrotлучше создавать уникальные ссылки на файл через shell командой ln http://rus-linux.net/MyLDP/consol/hdrguide/rusman/ln.htm Чем встроенная пхпшная функция symlink() не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2012, 14:55:03 |
|
||
|
[PHP]Отдача файла
|
|||
|---|---|---|---|
|
#18+
zadrotkalamfur, пришли .htaccess посмотрим как можно поправить Код: plaintext 1. 2. 3. 4. vkleА без всего этого файл вебсервером отдается как то не так? Опишите исходную задачу. Задача в полном контроле над любыми запросами к сайту. Мне кажется что это самый простой вариант. Т.е. в index.php я проверяю регулярками URL и либо переадресовываю, либо логирую запросы и отказываю в доступе либо в поток что-то отдаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2012, 15:07:32 |
|
||
|
[PHP]Отдача файла
|
|||
|---|---|---|---|
|
#18+
vkleЧем встроенная пхпшная функция symlink() не устраивает? мда, тупанул, symlink() логичней. kalamfurOptions +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] RewriteRule (.*)? index.php?page=$1 [L,QSA] это у тебя и картинки, css, js и прочие инклуды через php генерятся?:) не самый простой вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2012, 15:43:02 |
|
||
|
[PHP]Отдача файла
|
|||
|---|---|---|---|
|
#18+
zadrotkalamfurOptions +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] RewriteRule (.*)? index.php?page=$1 [L,QSA] это у тебя и картинки, css, js и прочие инклуды через php генерятся?:) не самый простой вариант попробуй так Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ http://%1/$1 [R=301,L] RewriteRule (.*)? index.php?page=$1 [L,QSA] тут проверяется существует ли файл, если да то выдается если нет то посылается в индекс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2012, 15:58:24 |
|
||
|
[PHP]Отдача файла
|
|||
|---|---|---|---|
|
#18+
kalamfur, еще после RewriteEngine On можно добавить: RewriteCond %{HTTP_HOST} ^site.ru RewriteRule ^(.*)$ http://www.site.ru/$1 [R=permanent,L] а то я так понимаю если у тебя человек название сайта без www набирает то попадает вникуда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2012, 16:14:40 |
|
||
|
[PHP]Отдача файла
|
|||
|---|---|---|---|
|
#18+
zadrotа то я так понимаю если у тебя человек название сайта без www набирает то попадает вникуда Почему вникуда? редиректит на сайт без www ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2012, 16:17:35 |
|
||
|
[PHP]Отдача файла
|
|||
|---|---|---|---|
|
#18+
kalamfurЗадача в полном контроле над любыми запросами к сайту.ИМХО это немного лишнее. Не вижу смысла мониторить запросы к стилям, яваскриптам, картинкам оформления и прочей мелочевке. Если, конечно, нет какого-то тайного смысла )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2012, 16:30:40 |
|
||
|
[PHP]Отдача файла
|
|||
|---|---|---|---|
|
#18+
Просто не стал проверять всё в .htaccess так как до этого использовал не апач, а lighttpd. Или стоит как-то проверять, и если не PHP, то отдавать как статику? разница по времени отдачи будет между fget и простой отдачей? или там еще и нагрузка на интерпритатор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2012, 16:36:19 |
|
||
|
[PHP]Отдача файла
|
|||
|---|---|---|---|
|
#18+
kalamfurzadrotа то я так понимаю если у тебя человек название сайта без www набирает то попадает вникуда Почему вникуда? редиректит на сайт без www не часто сталкиваюсь с htaccess, но в твоем htaccess я этого не вижу. kalamfurПросто не стал проверять всё в .htaccess так как до этого использовал не апач, а lighttpd. Или стоит как-то проверять, и если не PHP, то отдавать как статику? разница по времени отдачи будет между fget и простой отдачей? или там еще и нагрузка на интерпритатор? по дефолту как-то так пишу: RewriteEngine On RewriteCond %{HTTP_HOST} ^site.ru RewriteRule ^(.*)$ http://www.site.ru/$1 [R=permanent,L] RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php?route=$0 [L,QSA] разница огромная будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2012, 16:45:17 |
|
||
|
[PHP]Отдача файла
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, значит буду пользовать htaccess) видимо, контролировать все запросы это паранойя)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2012, 19:19:33 |
|
||
|
|

start [/forum/topic.php?fid=23&tid=1465336]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 370ms |

| 0 / 0 |
