分类: HTML

  • Install lighttpd on ubuntu

    sudo apt-get update

    sudo apt-get upgrade

    sudo apt-get install lighttpd

    modify lighttpd configuration ==> sudo nano /etc/lighttpd/lighttpd.conf

    • Disable global dir listing :  server.dir-listing          = “enable”  ==> server.dir-listing          = “disable”
    • Add alias of url:   alias.url = (
                    “/img/”         => “/www/image/”,
                    “/fp/”          => “/www/flowplayer/”,
                    “/Google_I_O/”  => “/usr/share/red5/dist/webapps/root/Google_I_O/”,
                    “/assets/”      => “/usr/share/red5/dist/webapps/root/assets/”,
                    “/download/”    => “/data/download/”,
                    “/dl/”          => “/data/download/”
                    )
    • Enable dir listing for the specified url:  $HTTP[“url”] =~ “^/dl/|^/download/|^/Google_I_O/” {
          dir-listing.activate = “enable”
       }
    • Enable module of mod_flv_streaming

    sudo /usr/sbin/lighty-enable-mod cgi

    sudo /etc/init.d/lighttpd  force-reload

     

  • About Godaddy AD

    Remove AD:

         Add <script>  in HTML file, just after the tag of </body>

        example:

        <html>
        <body>
            <h1>It works!</h1>
            <p>This is the default web page for this server.</p>
           <p>The web server software is running but no content has been added, yet.</p>
          </body>

          <script>
       </html>

     

     

    Hide AD

       Add <style>#conash3D0 {display:none}</style>; in HTML file, just after tag of </body>

      example:

      <html>
        <body>
            <h1>It works!</h1>
         <p>This is the default web page for this server.</p>
         <p>The web server software is running but no content has been added, yet.</p>
        </body>

        <style>#conash3D0 {display:none}</style>;
     </html>

  • Hide Godaddy AD in the front of wordpress

    Add the following code into wp-includesgeneral-template.php:

    function wp_footer() {
        /*
        Hide AD
        echo ‘<style>#conash3D0 {display:none}</style>’;
        */
        $lang = explode(‘,’,strtolower($_SERVER[‘HTTP_ACCEPT_LANGUAGE’]));
      if($lang[0]==’zh-cn’) { echo ‘<style>#conash3D0 {display:none}</style>’; }
      unset($lang);

        do_action(‘wp_footer’);
    }

     

    http://429006.com/article/technology/2132.htm

  • Setup WordPress AT Godaddy Free Space

    1. Create linux free space at godaddy
    2. Lunch the controller of free space
    3. Add the specified domain for free space.    eg:     host.zhenglei.net
    4. Create FTP User for Free Space
    5. Creat mysql database for woodspace,and record the info from edit/viewer
    6. Delete all default in free space
    7. Download latest wordpress from http://wordpress.org/, unzip/untar, and ftp all contents to the root of free space
    8. Launch the installation from web site:  http://host.zhenglei.net/wp-admin/install.php
    9. Finish the step 2 of installation
  • nginx rewrite规则和参考

    http://edu.codepub.com/show.php?contentid=25477

     

    正则表达式匹配,其中:

    1. * ~ 为区分大小写匹配
    2. * ~* 为不区分大小写匹配
    3. * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配

    文件及目录匹配,其中:

    1. * -f和!-f用来判断是否存在文件
    2. * -d和!-d用来判断是否存在目录
    3. * -e和!-e用来判断是否存在文件或目录
    4. * -x和!-x用来判断文件是否可执行

    flag标记有:

    1. * last 相当于Apache里的[L]标记,表示完成rewrite
    2. * break 终止匹配, 不再匹配后面的规则
    3. * redirect 返回302临时重定向 地址栏会显示跳转后的地址
    4. * permanent 返回301永久重定向 地址栏会显示跳转后的地址

    一些可用的全局变量有,可以用做条件判断(待补全)

    1. $args
    2. $content_length
    3. $content_type
    4. $document_root
    5. $document_uri
    6. $host
    7. $http_user_agent
    8. $http_cookie
    9. $limit_rate
    10. $request_body_file
    11. $request_method
    12. $remote_addr
    13. $remote_port
    14. $remote_user
    15. $request_filename
    16. $request_uri
    17. $query_string
    18. $scheme
    19. $server_protocol
    20. $server_addr
    21. $server_name
    22. $server_port
    23. $uri

    结合QeePHP的例子

    1. if (!-d $request_filename) {
    2. rewrite ^/([a-z-A-Z]+)/([a-z-A-Z]+)/?(.*)$ /index.php?namespace=user&amp;controller=$1&amp;action=$2&amp;$3 last;
    3. rewrite ^/([a-z-A-Z]+)/?$ /index.php?namespace=user&amp;controller=$1 last;
    4. break;

    多目录转成参数
    abc.domian.com/sort/2 => abc.domian.com/index.php?act=sort&name=abc&id=2

    1. if ($host ~* (.*).domain.com) {
    2. set $sub_name $1;   
    3. rewrite ^/sort/(d+)/?$ /index.php?act=sort&cid=$sub_name&id=$1 last;
    4. }

    目录对换
    /123456/xxxx -> /xxxx?id=123456

    1. rewrite ^/(d+)/(.+)/ /$2?id=$1 last;

    例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下:

    1. if ($http_user_agent ~ MSIE) {
    2. rewrite ^(.*)$ /nginx-ie/$1 break;
    3. }

    目录自动加“/”

    1. if (-d $request_filename){
    2. rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
    3. }

    禁止htaccess

    1. location ~/.ht {
    2.          deny all;
    3.      }

    禁止多个目录

    1. location ~ ^/(cron|templates)/ {
    2.          deny all;
    3. break;
    4.      }

    禁止以/data开头的文件
    可以禁止/data/下多级目录下.log.txt等请求;

    1. location ~ ^/data {
    2.          deny all;
    3.      }

    禁止单个目录
    不能禁止.log.txt能请求

    1. location /searchword/cron/ {
    2.          deny all;
    3.      }

    禁止单个文件

    1. location ~ /data/sql/data.sql {
    2.          deny all;
    3.      }

    给favicon.ico和robots.txt设置过期时间;
    这里为favicon.ico为99天,robots.txt为7天并不记录404错误日志

    1. location ~(favicon.ico) {
    2.                  log_not_found off;
    3. expires 99d;
    4. break;
    5.      }
    6.  
    7.      location ~(robots.txt) {
    8.                  log_not_found off;
    9. expires 7d;
    10. break;
    11.      }

    设定某个文件的过期时间;这里为600秒,并不记录访问日志

    1. location ^~ /html/scripts/loadhead_1.js {
    2.                  access_log   off;
    3.                  root /opt/lampp/htdocs/web;
    4. expires 600;
    5. break;
    6.        }

    文件反盗链并设置过期时间
    这里的return 412 为自定义的http状态码,默认为403,方便找出正确的盗链的请求
    “rewrite ^/ http://leech.c1gstudio.com/leech.gif;”显示一张防盗链图片
    “access_log off;”不记录访问日志,减轻压力
    “expires 3d”所有文件3天的浏览器缓存

    1. location ~* ^.+.(jpg|jpeg|gif|png|swf|rar|zip|css|js)$ {
    2. valid_referers none blocked *.c1gstudio.com *.c1gstudio.net localhost 208.97.167.194;
    3. if ($invalid_referer) {
    4.     rewrite ^/ http://leech.c1gstudio.com/leech.gif;
    5.     return 412;
    6.     break;
    7. }
    8.                  access_log   off;
    9.                  root /opt/lampp/htdocs/web;
    10. expires 3d;
    11. break;
    12.      }

    只充许固定ip访问网站,并加上密码

    1. root  /opt/htdocs/www;
    2. allow   208.97.167.194;
    3. allow   222.33.1.2;
    4. allow   231.152.49.4;
    5. deny    all;
    6. auth_basic “C1G_ADMIN”;
    7. auth_basic_user_file htpasswd;

    将多级目录下的文件转成一个文件,增强seo效果
    /job-123-456-789.html 指向/job/123/456/789.html

    1. rewrite ^/job-([0-9]+)-([0-9]+)-([0-9]+).html$ /job/$1/$2/jobshow_$3.html last;

    将根目录下某个文件夹指向2级目录
    如/shanghaijob/ 指向 /area/shanghai/
    如果你将last改成permanent,那么浏览器地址栏显是/location/shanghai/

    1. rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;

    上面例子有个问题是访问/shanghai 时将不会匹配

    1. rewrite ^/([0-9a-z]+)job$ /area/$1/ last;
    2. rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;

    这样/shanghai 也可以访问了,但页面中的相对链接无法使用,
    如./list_1.html真实地址是/area/shanghia/list_1.html会变成/list_1.html,导至无法访问。

    那我加上自动跳转也是不行咯
    (-d $request_filename)它有个条件是必需为真实目录,而我的rewrite不是的,所以没有效果

    1. if (-d $request_filename){
    2. rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
    3. }

    知道原因后就好办了,让我手动跳转吧

    1. rewrite ^/([0-9a-z]+)job$ /$1job/ permanent;
    2. rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;

    文件和目录不存在的时候重定向:

    1. if (!-e $request_filename) {
    2. proxy_pass http://127.0.0.1;
    3. }

    域名跳转

    1. server
    2.      {
    3.              listen       80;
    4.              server_name  jump.c1gstudio.com;
    5.              index index.html index.htm index.php;
    6.              root  /opt/lampp/htdocs/www;
    7.              rewrite ^/ http://www.c1gstudio.com/;
    8.              access_log  off;
    9.      }

    多域名转向

    1. server_name  www.c1gstudio.com www.c1gstudio.net;
    2.              index index.html index.htm index.php;
    3.              root  /opt/lampp/htdocs;
    4. if ($host ~ “c1gstudio.net”) {
    5. rewrite ^(.*) http://www.c1gstudio.com$1 permanent;
    6. }

    三级域名跳转

    1. if ($http_host ~* “^(.*).i.c1gstudio.com$”) {
    2. rewrite ^(.*) http://top.yingjiesheng.com$1;
    3. break;
    4. }

    域名镜向

    1. server
    2.      {
    3.              listen       80;
    4.              server_name  mirror.c1gstudio.com;
    5.              index index.html index.htm index.php;
    6.              root  /opt/lampp/htdocs/www;
    7.              rewrite ^/(.*) http://www.c1gstudio.com/$1 last;
    8.              access_log  off;
    9.      }

    某个子目录作镜向

    1. location ^~ /zhaopinhui {
    2.   rewrite ^.+ http://zph.c1gstudio.com/ last;
    3.   break;
    4.      }

    discuz ucenter home (uchome) rewrite

    1. rewrite ^/(space|network)-(.+).html$ /$1.php?rewrite=$2 last;
    2. rewrite ^/(space|network).html$ /$1.php last;
    3. rewrite ^/([0-9]+)$ /space.php?uid=$1 last;

    discuz 7 rewrite

    1. rewrite ^(.*)/archiver/((fid|tid)-[w-]+.html)$ $1/archiver/index.php?$2 last;
    2. rewrite ^(.*)/forum-([0-9]+)-([0-9]+).html$ $1/forumdisplay.php?fid=$2&page=$3 last;
    3. rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3 last;
    4. rewrite ^(.*)/profile-(username|uid)-(.+).html$ $1/viewpro.php?$2=$3 last;
    5. rewrite ^(.*)/space-(username|uid)-(.+).html$ $1/space.php?$2=$3 last;
    6. rewrite ^(.*)/tag-(.+).html$ $1/tag.php?name=$2 last;

    给discuz某版块单独配置域名

    1. server_name  bbs.c1gstudio.com news.c1gstudio.com;
    2.  
    3.      location = / {
    4.         if ($http_host ~ news.c1gstudio.com$) {
    5.   rewrite ^.+ http://news.c1gstudio.com/forum-831-1.html last;
    6.   break;
    7. }
    8.      }

    discuz ucenter 头像 rewrite 优化

    1. location ^~ /ucenter {
    2.      location ~ .*.php?$
    3.      {
    4.   #fastcgi_pass  unix:/tmp/php-cgi.sock;
    5.   fastcgi_pass  127.0.0.1:9000;
    6.   fastcgi_index index.php;
    7.   include fcgi.conf;     
    8.      }
    9.  
    10.      location /ucenter/data/avatar {
    11. log_not_found off;
    12. access_log   off;
    13. location ~ /(.*)_big.jpg$ {
    14.     error_page 404 /ucenter/images/noavatar_big.gif;
    15. }
    16. location ~ /(.*)_middle.jpg$ {
    17.     error_page 404 /ucenter/images/noavatar_middle.gif;
    18. }
    19. location ~ /(.*)_small.jpg$ {
    20.     error_page 404 /ucenter/images/noavatar_small.gif;
    21. }
    22. expires 300;
    23. break;
    24.      }
    25.                        }

    jspace rewrite

    1. location ~ .*.php?$
    2.              {
    3.                   #fastcgi_pass  unix:/tmp/php-cgi.sock;
    4.                   fastcgi_pass  127.0.0.1:9000;
    5.                   fastcgi_index index.php;
    6.                   include fcgi.conf;     
    7.              }
    8.  
    9.              location ~* ^/index.php/
    10.              {
    11.     rewrite ^/index.php/(.*) /index.php?$1 break;
    12.                   fastcgi_pass  127.0.0.1:9000;
    13.                   fastcgi_index index.php;
    14.                   include fcgi.conf;
    15.              }

    wordpress rewrite

    1. location / {
    2.         index index.html index.php;
    3.         if (-f $request_filename/index.html){
    4.             rewrite (.*) $1/index.html break;
    5.         }
    6.         if (-f $request_filename/index.php){
    7.             rewrite (.*) $1/index.php;
    8.         }
    9. if  (!-e $request_filename)
    10. {
    11.     rewrite (.*) /index.php;
    12. }
    13. }
  • Play Flash based on HTML path in Red5

    For each flash file,  setup a HTML file with the same name as the flash file, except for the extension.

    The HTML pass the file name to SWF, and SWF play the video.

     

    http://commondatastorage.googleapis.com/red5.zhenglei.net/PlayStreamByPath.7z

     

  • Passing Variables from HTML to Flash in Adobe CS4

    Suppose we need to pass the currnet URL from HTML to Flash:

     

    1.   Add the following  ActionScript into FLA:

    # #  myVIDEO is the parameter from HTML,  and we display it on screen

    var my_fmt = new TextFormat();
    my_fmt.color = 0xFF0000;
    my_fmt.underline = true;
    this.createTextField(“myTxt”, 1, 320, 10, 200, 20);
    myTxt.autoSize = “left”;
    myTxt.setTextFormat(my_fmt);

    if (myVIDEO == undefined) {
    myTxt.text = “Keynote_1.flv”;
    } else {
    myTxt.text = myVIDEO;
    }

     

    2.  Generate the SWF and HTML from FLA

     

     

    3. Modify the generated HTML to add myVIDEO parameter,

       3.1 ==> Add the following line in the  AC_FL_RunContent block:

           ‘flashvars’,”,

     

       3.2 ==> Add the handle of flashvars in function AC_GetArgs, as following:

         case “flashvars”:
            ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = “myVIDEO=”+window.location;
            break;

      // Here myVIDEO the variable in AS2, and window.location is the variable in JavaScript indicating the current URL of HTML page

  • How To Get URL Parts in JavaScript

     

    This JavaScript Tutorial article explains the Location object, and how to retrieve the URL from it in several parts, including how to parse, split, and rebuild URLs.

    This JavaScript tutorial article concentrates on:

    • Obtaining the URL from the window.location object
    • Changing the current location with window.location.href and window.location.reload
    • Splitting and rebuilding URLs with Array and String splitting functions

    The first step is understanding the JavaScript Location object.

    The Location Object

    This is a JavaScript class that is used to store URLs. It comes with properties that represent each part of the URL, and can be updated by changing the href property. The key properties that this article deals with are:

    • location.href : the full URL
    • location.protocol, location.host & location.pathname : the parts of the URL

    In addition there are various methods that

    • location.reload
    • location.replace

    These shall be discussed with reference to the window.location object.

    The window.location Object

    The window.location object is the specific object that stores the URL of the currently loaded page. If a JavaScript function changes the window.location.href property, then the page should reload with the new location.

    However, this may not always be the case, and so the location.reload and location.replace methods have also been provided in the Location object. These were introduced in JavaScript 1.2, and give a little more control over the way that browsing history and current page location URLs are handled. In some cases it may not be enough to set the window.location.href, and so calling window.location.reload will force the page to be refreshed.

    The window.location.replace method is used to overwrite the history entry in the browser, for the current page

    Splitting and Rebuilding URLs

    The URL is stored as the following parts:

    protocol://host/pathname

    Each part can be accessed using the appropriate property of the Location object:

    • location.protocol : for web pages, the value http
    • location.host : for this site www.suite101.com
    • location.pathname : the path to a page i.e. mypages/page1.html

    It is important to note that:

    • The protocol is store without the : or // that make up the whole URL
    • The host will contain a port, where appropriate
    • the pathname does not contain the leading /

    So, to rebuild a URL based on the above information, code such as the following can be used:

    newURL = window.location.protocol + “//” + window.location.host + “/” + window.location.pathname;

    This makes it very easy to create inline links that are context sensitive, and that refer pages that should exist on the server. For example, a site might have a tag page that collects all content that has the tag marketing associated with it. If the word marketing were to appear in a block of text, then JavaScript could be used to pre-process that block of text, and add a URL based on the current URL, but containing the reference to the marketing tag page.

    One final note is that the pathname will be a / separated string, which can be split into an array of strings using the following code:

    pathArray = window.location.pathname.split( ‘/’ );

    Using this approach, it is easy to rebuild URLs, as each component will be contained in one array element. Again, however, it is necessary to put the / back:

    newPathname = “”;
    for ( i = 0; i pathArray.length; i++ ) {
    newPathname += “/”;
    newPathname += pathArray[i];
    }

    The JavaScript Split List or String article contains more details about using arrays and strings in this way.

    Original URL:
  • Passing parameter from HTML to Flash in Adobe CS4

    Suppoe we need pass the video name from HTML to Flash.

    1.   Add the following  ActionScript into FLA:

    # Display the video in screen

    var my_fmt = new TextFormat();
    my_fmt.color = 0xFF0000;
    my_fmt.underline = true;
    this.createTextField(“myTxt”, 1, 320, 10, 200, 20);
    myTxt.autoSize = “left”;
    myTxt.setTextFormat(my_fmt);

    #  myVIDEO is the parameter from HTML
    if (myVIDEO == undefined) {
    myTxt.text = “Keynote_1.flv”;
    } else {
    myTxt.text = myVIDEO;
    }

    // create basic netConnection object
    var nc:NetConnection = new NetConnection();

    // connect to the local Red5 server
    nc.connect(“rtmp://192.168.127.127/oflaDemo”);

    // create the netStream object and pass the netConnection object in the constructor
    var ns:NetStream = new NetStream(nc);

    // attach the netStream object to the video object
    videoContainer.attachVideo(ns);

    // Play the video
    ns.play(myTxt.text);

     

     

    2.  Generate the SWF and HTML from FLA

     

     

    3. Modify the generated HTML to add myVIDEO parameter,

       Three parts to be modified in HTML:

     

       A)  Add the following line in the  AC_FL_RunContent block:

           ‘FlashVars’,’myVIDEO=Keynote_2.flv’,

     

      B)  Add the following line in the  Object block:

          <param name=”FlashVars” value=”myVIDEO=Keynote_2.flv” />

     

      C)  Add the following into the embed scr block:

         FlashVars=”myVIDEO=Keynote_2.flv”

     

    http://commondatastorage.googleapis.com/red5.zhenglei.net/Pass_Variable_From_Html_To_Flash.7z