Pull to refresh
50
0
Илья Панасенко @HDg

User

Send message
UFO landed and left these words here
UFO landed and left these words here
Ну это же не инструкция или HowTo для начинающих

Учитывая количество багов полученное после «окончания тестирования» и начала продакшн эксплуатации, я могу предположить что реализацией занимались как раз таки «начинающие».
И вообще зачем эти костыли с установкой action формы в имя фрейма? У формы уже тысячу лет есть аттрибут target в который надо записать id iframe-а. А в iframe надо не json возвращять, а

<html>
  <head>
    <script type="text/javascript">
      window.parent.showUploadedImages(["file1.jpg","..",...]);
    </script>
  </head>
  <body>
  </body>
</head>
</html>


И ничего парсить не прейдеться. Плюс соответственно надо реализовать в основном окне функцию showUploadedImages

Но это все тоже для «начинающих», в обще лучше использовать plupload который позволяет реализовать:
— Chunking
— Drag/Drop
— PNG Resize
— JPEG Resize
— Type filtering
— Stream upload
— Multipart upload
— File size restriction
— Upload progress

и объединяет в себе следующие способы загрузки:
— Flash
— Gears
— HTML 5
— Silverlight
— BrowserPlus
— HTML 4

При этом plupload позволяет делать resize изображения еще на стороне клиента, тем самым разгружая сервер.
>Резолюция 480х854
>Резолюция
image
Приведенный ниже код позволяет поисковым роботам (в данном случае, googlebot) просматривать страницу и делает так, чтобы я, с моего IP, мог входить на сайт без пароля, а мой клиент и посетители – по паролю. Также данным кодом разрешено проведение XHTML и CSS валидации! (w3.org)

AuthName "SiteName Administration"
AuthUserFile /home/sitename.com/.htpasswd
AuthType basic
Require valid-user
Order deny,allow
Deny from all
Allow from 24\\.205\\.23\\.222
Allow from w3.org htmlhelp.com
Allow from googlebot.com
Satisfy Any

Каждый образец кода скопирован с форума htaccessElite. Там же можно найти дополнительную информацию по каждому из образцов.
NB!: Большинство приведенных примеров можно использовать с директивой Files or Filesmatch, чтобы инструкции, содержащиеся в них, применялись только к конкретным файлам.
NB!: Инструкции, направленные на переопределение (rewrite) должны всегда предваряться следующими строками:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

Чтобы присвоить файлу тип независимо от его имени или расширения

#Делает так, что файлы, напр., image.gif, blah.html, index.cgi исполняются как php
ForceType application/x-httpd-php

Чтобы переадресовать запросы, созданные не по https протоколу на https, и решить проблему необходимости повторной авторизации при использовании htpasswd

SSLOptions +StrictRequire
SSLRequireSSL
SSLRequire %{HTTP_HOST} eq "google.com"
ErrorDocument 403 https://google.com

Редирект с битых ссылок, не вредящий SEO
Для одного удаленного файла

Redirect 301 /d/file.html http://www.htaccesselite.com/r/file.html

Для группы файлов типа blog/this.php?gh
RedirectMatch 301 /blog(.*) http://www.askapache.com/$1

При смене доменного имени

Redirect 301 / http://www.newdomain.com
Обязательное www в запросе
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/robots\\.txt$
RewriteCond %{HTTP_HOST} !^www\\.example\\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

Необязательное www в запросе

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/robots\\.txt$ [NC]
RewriteCond %{HTTP_HOST} !^www\\.[a-z-]+\\.[a-z]{2,6} [NC]
RewriteCond %{HTTP_HOST} ([a-z-]+\\.[a-z]{2,6})$ [NC]
RewriteRule ^/(.*)$ http://%1/$1 [R=301,L]

Убираем субдомен из строки запроса

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/robots\\.txt$
RewriteCond %{HTTP_HOST} \\.([a-z-]+\\.[a-z]{2,6})$ [NC]
RewriteRule ^/(.*)$ http://%1/$1 [R=301,L]

Убираем субдомен из строки запроса

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} \\.([^\\.]+\\.[^\\.0-9]+)$
RewriteCond %{REQUEST_URI} !^/robots\\.txt$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Перенаправление всех посетителей на другой сайт, за исключением одного IP (бывает полезно при веб-разработке)

ErrorDocument 403 http://www.someothersite.com
Order deny,allow
Deny from all
Allow from 24.33.65.6

Операции над переменными (mod_env)
Установка часового пояса сервера:

SetEnv TZ America/Indianapolis

Установка email администратора сервера:

SetEnv SERVER_ADMIN webmaste@htaccesselite.com

Выключение ServerSignature
ServerSignature Off
Добавление языка и кодировки в заголовки без использования мета-тэгов
AddDefaultCharset UTF-8
# Или AddType 'text/html; charset=UTF-8' html
DefaultLanguage en-US

C использованием директивы Files

AddDefaultCharset UTF-8
DefaultLanguage en-US

C использованием директивы FilesMatch (более предпочтительно)

AddDefaultCharset UTF-8
DefaultLanguage en-US

Использование собственного файла php.ini с помощью mod_php или php, установленного как cgi
Статья на тему: Custom PHP.ini tips and tricks
Если php работает как модуль Apache (mod_php) в корневом файле .htaccess установите следующее:
SetEnv PHPRC /location/todir/containing/phpinifile
Если php установлен как cgi, поместите Ваш файл php.ini в директорию, содержащую php, в описываемом случае /cgi-bin/, а в файл htaccess добавьте следующее:
AddHandler php-cgi .php .htm Action php-cgi /cgi-bin/php5.cgi
Если cgi-php работет через оболочку (для FastCGI), необходимо в скрипте оболочки изменить #!/bin/sh export PHP_FCGI_CHILDREN=3 exec /user3/x.com/htdocs/cgi-bin/php5.cgi на следующее #!/bin/sh export PHP_FCGI_CHILDREN=3 exec /x.com/cgi-bin/php.cgi -c /abs/path/to/php.ini
Безопасность папок: Удаление возможности исполнять скрипты
Это можно сделать несколькими способами. К примеру:
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI

Таким образом Вы определите, что файлы с перечисленными расширениями попадают в сферу действия команды -ExecCGI, а значит и -FollowSymLinks
Разрешение только методов GET и PUT при обращении к серверу.
Options -ExecCGI -Indexes -All +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_METHOD} !^(GET|PUT)
RewriteRule .* - [F]
Обработка всех файлов gif скриптом cgi
Action image/gif /cgi-bin/filter.cgi

Обработка запроса / файла в зависимости от метода
Script PUT /cgi-bin/upload.cgi
Форсированная загрузка файла вместо отображения его содержимого прямо в браузере
AddType application/octet-stream .avi
AddType application/octet-stream .mpg

А в HTML-коде достаточно поставить ссылку прямо на нужный файл.
Отображение исходного кода вместо выполнения скрипта
Если возникла необходимость отобразить файлы типа .pl, .py или .cgi в виде исходного кода, а не исполнять их как скрипты, создайте в папке, где они расположены, файл .htaccess, содержащий следующее:
RemoveHandler cgi-script .pl .py .cgi
Многократное увеличение скорости работы сайта при помощи кэширования!
Статья на тему: Speed Up Sites with htaccess Caching

# НА МЕСЯЦ

Header set Cache-Control "max-age=2592000"

# НА НЕДЕЛЮ

Header set Cache-Control "max-age=604800"

# НА ДЕНЬ

Header set Cache-Control "max-age=43200"

Предотвращение кражи изображений и файлов

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\\.)?askapache.com/.*$ [NC]
RewriteRule \\.(gif|jpg|swf|flv|png)$ http://www.askapache.com/evil-hotlinker.… [R=302,L]

Замена стандартных сообщений об ошибке

ErrorDocument 404 /favicon.ico
ErrorDocument 403 https://secure.htaccesselite.com
ErrorDocument 404 /cgi-bin/error.php
ErrorDocument 400 /cgi-bin/error.php
ErrorDocument 401 /cgi-bin/error.php
ErrorDocument 403 /cgi-bin/error.php
ErrorDocument 405 /cgi-bin/error.php
ErrorDocument 406 /cgi-bin/error.php
ErrorDocument 409 /cgi-bin/error.php
ErrorDocument 413 /cgi-bin/error.php
ErrorDocument 414 /cgi-bin/error.php
ErrorDocument 500 /cgi-bin/error.php
ErrorDocument 501 /cgi-bin/error.php

NB!: Вы можете также использовать внешние ссылки, но не делайте внешних ссылок на Ваш собственный сайт, чтобы не вредить его продвижению в поисковых системах.
Операция аутентификации
Запрос пароля на один файл:


AuthName "Prompt"
AuthType Basic
AuthUserFile /home/askapache.com/.htpasswd
Require valid-user

Защита паролем нескольких файлов:

AuthName "Development"
AuthUserFile /.htpasswd
AuthType basic
Require valid-user

Примеры использования директивы Allow:

# Частичное разрешение (доменное имя)
Allow from 10.1.0.0/255.255.0.0

# Полное разрешение на 1 IP
Allow from 10.1.2.3

# Полное разрешение на несколько IP
Allow from 192.168.1.104 192.168.1.205

# Разрешение при совпадении части IP адреса с образцом
Allow from 10.1
Allow from 10 172.20 192.168.2

# разрешение для пары сеть/маска подсети
Allow from 10.1.0.0/255.255.0.0


Использование переменных окружения в зависимости от посетителя:

SetEnvIf User-Agent ^KnockKnock/2\\.0 let_me_in
Order Deny,Allow
Deny from all
Allow from env=let_me_in
Разрешение для домена (при запрете для субдомена)
Order Allow,Deny
Allow from apache.org
Deny from foo.apache.org
Доступ с IP адреса без пароля, а не с IP – по паролю
AuthUserFile /home/www/site1-passwd
AuthType Basic
AuthName MySite
Require valid-user
Allow from 172.17.10
Satisfy Any

Блокирование доступа к файлам в определенные часы
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# В 16 часов закрыть доступ к файлам
RewriteCond %{TIME_HOUR} ^16$
RewriteRule ^.*$ - [F,L]

Пример базового файла .htaccess
Автор пользуется им, когда начинает делать новый сайт. По мере работы, оттуда удаляются куски кода или снимаются комментарии.

# Базовые установки
##############################################
Options +ExecCGI -Indexes
DirectoryIndex index.php index.html index.htm

### Умолчания ###
ServerSignature Off
AddType video/x-flv .flv
AddType application/x-shockwave-flash .swf
AddType image/x-icon .ico
AddDefaultCharset UTF-8
DefaultLanguage en-US
SetEnv TZ America/Indianapolis
SetEnv SERVER_ADMIN webmaster@^^SITE^^.^^TLD^^

### FAST-CGI ###
AddHandler fastcgi-script fcgi
AddHandler php-cgi .php
Action php-cgi /cgi-bin/php5-wrapper.fcgi

# Заголовки и кэширование
##############################################
#### КЭШИРОВАНИЕ ####
# НА ГОД

Header set Cache-Control "max-age=2592000"

# НА НЕДЕЛЮ

Header set Cache-Control "max-age=604800"

# НА 10 МИНУТ

Header set Cache-Control "max-age=600"

# НЕ КЭШИРОВАТЬ

Header unset Cache-Control


# ПЕРЕОПРЕДЕЛЕНИЯ И ПЕРЕНАПРАВЛЕНИЯ
##############################################
### SEO редирект ###
Redirect 301 /2006/uncategorized/htaccesselitecom-aboutus.html http://www.^^SITE^^.^^TLD^^

### ПЕРЕОПРЕДЕЛЕНИЯ ###
RewriteEngine On
RewriteBase /

# АВТОРИЗАЦИЯ
##############################################
AuthName "^^SITE^^.^^TLD^^"
Require valid-user
AuthUserFile /^^SITE^^.^^TLD^^/.htpasswd
AuthType basic
Вот у фаерфокса есть плагины, у хрома есть некие инновации и скорость и снова же плагины, у ИЕ есть тесная интеграция в платформу (что достаточно весомый плюс в компексных Win-решениях, по крайней мере этот плюс был таковым), а что есть у Оперы? Только лишь скорость движка? Дык на современных процессорах разница в миллисекундах слабозаметна. Что показывают для пользователя эти цифры в «попугях»? Что они означают в практическом выражении?
Собственно, я к тому, что эти таблицы с непонятными цифирями абсолютно ничего не говорят, кроме того, что Опера 10.10 чуточек отстала от ФФ 3.5.7 и выиграла у других, только не ясно в чём. Как этот пресловутый performance ощущтит среднестатический юзер с коре2дуо на борту и с 2-3 вкладками типа «мыло.ру», «одноглазники» и «яндекс»?
Дык чем эдаким действительно серьёзным может похвастаться Опера?

P.S. Слово «выИгрыш» происходит от слова «игра», но никак не от «йгра».
P.S.1. По поводу Германии. Опера достаточно популярна на постсоветском пространстве, и настолько же малозаметна в Европе. Об этом постоянно пишут и приводят графики, в том числе тут же на Хабре.

Information

Rating
Does not participate
Location
Днепр, Днепропетровская обл., Украина
Date of birth
Registered
Activity