Kết quả 1 đến 3 của 3
  1. #1
    Moderator nhan248's Avatar
    Ngày tham gia
    17-05-2013
    Bài viết
    67
    Cảm ơn
    18
    Được cảm ơn 22 trong 16 bài viết

    Làm sao rewrite_url

    e thấy thường trong thư mục gốc website thường có file .htaccess ,mún rewrite lại url thì chỉnh ở đây .pác nào biết hướng dẫn mình với.
    ví dụ :
    http://vietcham.vn/category/detail/m...rangsuc-lamdep
    rewrite thành:http://vietcham.vn/category/detail/m...ng-suc-lam-dep

  2. #2
    Super Moderator tinhphaistc's Avatar
    Ngày tham gia
    01-03-2013
    Bài viết
    693
    Cảm ơn
    244
    Được cảm ơn 278 trong 210 bài viết
    vấn đề bạn cần một HELPER để chuyển tất cả url tiếng việt thành url tiếng việt không dấu. kèm theo một điều.
    2 url bạn đưa chỉ khác nhau ở dấu "-" đồng nghĩa là khi bạn tạo tên bài viết như vậy.
    my-pham-trang-suc-lam-dep
    thì tiêu đề của nó phải làm:
    mỹ phẩm trang sức làm đẹp
    và dùng kèm file helper như sau:
    PHP Code:
    <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    /**
     * CodeIgniter
     *
     * An open source application development framework for PHP 5.1.6 or newer
     *
     * @package        CodeIgniter
     * @author        ExpressionEngine Dev Team
     * @copyright    Copyright (c) 2008 - 2011, EllisLab, Inc.
     * @license        http://codeigniter.com/user_guide/license.html
     * @link        http://codeigniter.com
     * @since        Version 1.0
     * @filesource
     */

    // ------------------------------------------------------------------------

    /**
     * CodeIgniter URL Helpers
     *
     * @package        CodeIgniter
     * @subpackage    Helpers
     * @category    Helpers
     * @author        ExpressionEngine Dev Team
     * @link        http://codeigniter.com/user_guide/helpers/url_helper.html
     */

    // ------------------------------------------------------------------------

    /**
     * Site URL
     *
     * Create a local URL based on your basepath. Segments can be passed via the
     * first parameter either as a string or an array.
     *
     * @access    public
     * @param    string
     * @return    string
     */
    if ( ! function_exists('site_url'))
    {
        function 
    site_url($uri '')
        {
            
    $CI =& get_instance();
            return 
    $CI->config->site_url($uri);
        }
    }

    // ------------------------------------------------------------------------

    /**
     * Base URL
     * 
     * Create a local URL based on your basepath.
     * Segments can be passed in as a string or an array, same as site_url
     * or a URL to a file can be passed in, e.g. to an image file.
     *
     * @access    public
     * @param string
     * @return    string
     */
    if ( ! function_exists('base_url'))
    {
        function 
    base_url($uri '')
        {
            
    $CI =& get_instance();
            return 
    $CI->config->base_url($uri);
        }
    }

    // ------------------------------------------------------------------------

    /**
     * Current URL
     *
     * Returns the full URL (including segments) of the page where this
     * function is placed
     *
     * @access    public
     * @return    string
     */
    if ( ! function_exists('current_url'))
    {
        function 
    current_url()
        {
            
    $CI =& get_instance();
            return 
    $CI->config->site_url($CI->uri->uri_string());
        }
    }

    // ------------------------------------------------------------------------
    /**
     * URL String
     *
     * Returns the URI segments.
     *
     * @access    public
     * @return    string
     */
    if ( ! function_exists('uri_string'))
    {
        function 
    uri_string()
        {
            
    $CI =& get_instance();
            return 
    $CI->uri->uri_string();
        }
    }

    // ------------------------------------------------------------------------

    /**
     * Index page
     *
     * Returns the "index_page" from your config file
     *
     * @access    public
     * @return    string
     */
    if ( ! function_exists('index_page'))
    {
        function 
    index_page()
        {
            
    $CI =& get_instance();
            return 
    $CI->config->item('index_page');
        }
    }

    // ------------------------------------------------------------------------

    /**
     * Anchor Link
     *
     * Creates an anchor based on the local URL.
     *
     * @access    public
     * @param    string    the URL
     * @param    string    the link title
     * @param    mixed    any attributes
     * @return    string
     */
    if ( ! function_exists('anchor'))
    {
        function 
    anchor($uri ''$title ''$attributes '')
        {
            
    $title = (string) $title;

            if ( ! 
    is_array($uri))
            {
                
    $site_url = ( ! preg_match('!^\w+://! i'$uri)) ? site_url($uri) : $uri;
            }
            else
            {
                
    $site_url site_url($uri);
            }

            if (
    $title == '')
            {
                
    $title $site_url;
            }

            if (
    $attributes != '')
            {
                
    $attributes _parse_attributes($attributes);
            }

            return 
    '<a href="'.$site_url.'"'.$attributes.'>'.$title.'</a>';
        }
    }

    // ------------------------------------------------------------------------

    /**
     * Anchor Link - Pop-up version
     *
     * Creates an anchor based on the local URL. The link
     * opens a new window based on the attributes specified.
     *
     * @access    public
     * @param    string    the URL
     * @param    string    the link title
     * @param    mixed    any attributes
     * @return    string
     */
    if ( ! function_exists('anchor_popup'))
    {
        function 
    anchor_popup($uri ''$title ''$attributes FALSE)
        {
            
    $title = (string) $title;

            
    $site_url = ( ! preg_match('!^\w+://! i'$uri)) ? site_url($uri) : $uri;

            if (
    $title == '')
            {
                
    $title $site_url;
            }

            if (
    $attributes === FALSE)
            {
                return 
    "<a href='javascript:void(0);' onclick=\"window.open('".$site_url."', '_blank');\">".$title."</a>";
            }

            if ( ! 
    is_array($attributes))
            {
                
    $attributes = array();
            }

            foreach (array(
    'width' => '800''height' => '600''scrollbars' => 'yes''status' => 'yes''resizable' => 'yes''screenx' => '0''screeny' => '0', ) as $key => $val)
            {
                
    $atts[$key] = ( ! isset($attributes[$key])) ? $val $attributes[$key];
                unset(
    $attributes[$key]);
            }

            if (
    $attributes != '')
            {
                
    $attributes _parse_attributes($attributes);
            }

            return 
    "<a href='javascript:void(0);' onclick=\"window.open('".$site_url."', '_blank', '"._parse_attributes($attsTRUE)."');\"$attributes>".$title."</a>";
        }
    }

    // ------------------------------------------------------------------------

    /**
     * Mailto Link
     *
     * @access    public
     * @param    string    the email address
     * @param    string    the link title
     * @param    mixed    any attributes
     * @return    string
     */
    if ( ! function_exists('mailto'))
    {
        function 
    mailto($email$title ''$attributes '')
        {
            
    $title = (string) $title;

            if (
    $title == "")
            {
                
    $title $email;
            }

            
    $attributes _parse_attributes($attributes);

            return 
    '<a href="mailto:'.$email.'"'.$attributes.'>'.$title.'</a>';
        }
    }

    // ------------------------------------------------------------------------

    /**
     * Encoded Mailto Link
     *
     * Create a spam-protected mailto link written in Javascript
     *
     * @access    public
     * @param    string    the email address
     * @param    string    the link title
     * @param    mixed    any attributes
     * @return    string
     */
    if ( ! function_exists('safe_mailto'))
    {
        function 
    safe_mailto($email$title ''$attributes '')
        {
            
    $title = (string) $title;

            if (
    $title == "")
            {
                
    $title $email;
            }

            for (
    $i 0$i 16$i++)
            {
                
    $x[] = substr('<a href="mailto:'$i1);
            }

            for (
    $i 0$i strlen($email); $i++)
            {
                
    $x[] = "|".ord(substr($email$i1));
            }

            
    $x[] = '"';

            if (
    $attributes != '')
            {
                if (
    is_array($attributes))
                {
                    foreach (
    $attributes as $key => $val)
                    {
                        
    $x[] =  ' '.$key.'="';
                        for (
    $i 0$i strlen($val); $i++)
                        {
                            
    $x[] = "|".ord(substr($val$i1));
                        }
                        
    $x[] = '"';
                    }
                }
                else
                {
                    for (
    $i 0$i strlen($attributes); $i++)
                    {
                        
    $x[] = substr($attributes$i1);
                    }
                }
            }

            
    $x[] = '>';

            
    $temp = array();
            for (
    $i 0$i strlen($title); $i++)
            {
                
    $ordinal ord($title[$i]);

                if (
    $ordinal 128)
                {
                    
    $x[] = "|".$ordinal;
                }
                else
                {
                    if (
    count($temp) == 0)
                    {
                        
    $count = ($ordinal 224) ? 3;
                    }

                    
    $temp[] = $ordinal;
                    if (
    count($temp) == $count)
                    {
                        
    $number = ($count == 3) ? (($temp['0'] % 16) * 4096) + (($temp['1'] % 64) * 64) + ($temp['2'] % 64) : (($temp['0'] % 32) * 64) + ($temp['1'] % 64);
                        
    $x[] = "|".$number;
                        
    $count 1;
                        
    $temp = array();
                    }
                }
            }

            
    $x[] = '<'$x[] = '/'$x[] = 'a'$x[] = '>';

            
    $x array_reverse($x);
            
    ob_start();

        
    ?><script type="text/javascript">
        //<![CDATA[
        var l=new Array();
        <?php
        $i 
    0;
        foreach (
    $x as $val){ ?>l[<?php echo $i++; ?>]='<?php echo $val?>';<?php ?>

        for (var i = l.length-1; i >= 0; i=i-1){
        if (l[i].substring(0, 1) == '|') document.write("&#"+unescape(l[i].substring(1))+";");
        else document.write(unescape(l[i]));}
        //]]>
        </script><?php

            $buffer 
    ob_get_contents();
            
    ob_end_clean();
            return 
    $buffer;
        }
    }

    // ------------------------------------------------------------------------

    /**
     * Auto-linker
     *
     * Automatically links URL and Email addresses.
     * Note: There's a bit of extra code here to deal with
     * URLs or emails that end in a period.  We'll strip these
     * off and add them after the link.
     *
     * @access    public
     * @param    string    the string
     * @param    string    the type: email, url, or both
     * @param    bool    whether to create pop-up links
     * @return    string
     */
    if ( ! function_exists('auto_link'))
    {
        function 
    auto_link($str$type 'both'$popup FALSE)
        {
            if (
    $type != 'email')
            {
                if (
    preg_match_all("#(^|\s|\()((http(s?)://)|(www\.))(\w+[^\s\)\<]+)#i"$str$matches))
                {
                    
    $pop = ($popup == TRUE) ? " target=\"_blank\" " "";

                    for (
    $i 0$i count($matches['0']); $i++)
                    {
                        
    $period '';
                        if (
    preg_match("|\.$|"$matches['6'][$i]))
                        {
                            
    $period '.';
                            
    $matches['6'][$i] = substr($matches['6'][$i], 0, -1);
                        }

                        
    $str str_replace($matches['0'][$i],
                                            
    $matches['1'][$i].'<a href="http'.
                                            
    $matches['4'][$i].'://'.
                                            
    $matches['5'][$i].
                                            
    $matches['6'][$i].'"'.$pop.'>http'.
                                            
    $matches['4'][$i].'://'.
                                            
    $matches['5'][$i].
                                            
    $matches['6'][$i].'</a>'.
                                            
    $period$str);
                    }
                }
            }

            if (
    $type != 'url')
            {
                if (
    preg_match_all("/([a-zA-Z0-9_\.\-\+]+)@([a-zA-Z0-9\-]+)\.([a-zA-Z0-9\-\.]*)/i"$str$matches))
                {
                    for (
    $i 0$i count($matches['0']); $i++)
                    {
                        
    $period '';
                        if (
    preg_match("|\.$|"$matches['3'][$i]))
                        {
                            
    $period '.';
                            
    $matches['3'][$i] = substr($matches['3'][$i], 0, -1);
                        }

                        
    $str str_replace($matches['0'][$i], safe_mailto($matches['1'][$i].'@'.$matches['2'][$i].'.'.$matches['3'][$i]).$period$str);
                    }
                }
            }

            return 
    $str;
        }
    }

    // ------------------------------------------------------------------------

    /**
     * Prep URL
     *
     * Simply adds the http:// part if no scheme is included
     *
     * @access    public
     * @param    string    the URL
     * @return    string
     */
    if ( ! function_exists('prep_url'))
    {
        function 
    prep_url($str '')
        {
            if (
    $str == 'http://' OR $str == '')
            {
                return 
    '';
            }

            
    $url parse_url($str);

            if ( ! 
    $url OR ! isset($url['scheme']))
            {
                
    $str 'http://'.$str;
            }

            return 
    $str;
        }
    }

    // ------------------------------------------------------------------------

    /**
     * Create URL Title
     *
     * Takes a "title" string as input and creates a
     * human-friendly URL string with a "separator" string 
     * as the word separator.
     *
     * @access    public
     * @param    string    the string
     * @param    string    the separator
     * @return    string
     */
    if ( ! function_exists('url_title'))
    {
        function 
    url_title($str$separator '-'$lowercase FALSE)
        {
            if (
    $separator == 'dash'
            {
                
    $separator '-';
            }
            else if (
    $separator == 'underscore')
            {
                
    $separator '_';
            }
            
            
    $q_separator preg_quote($separator);

            
    $trans = array(
                
    '&.+?;'                 => '',
                
    '[^a-z0-9 _-]'          => '',
                
    '\s+'                   => $separator,
                
    '('.$q_separator.')+'   => $separator
            
    );

            
    $str strip_tags($str);

            foreach (
    $trans as $key => $val)
            {
                
    $str preg_replace("#".$key."#i"$val$str);
            }

            if (
    $lowercase === TRUE)
            {
                
    $str strtolower($str);
            }

            return 
    trim($str$separator);
        }
    }

    // ------------------------------------------------------------------------

    /**
     * Header Redirect
     *
     * Header redirect in two flavors
     * For very fine grained control over headers, you could use the Output
     * Library's set_header() function.
     *
     * @access    public
     * @param    string    the URL
     * @param    string    the method: location or redirect
     * @return    string
     */
    if ( ! function_exists('redirect'))
    {
        function 
    redirect($uri ''$method 'location'$http_response_code 302)
        {
            if ( ! 
    preg_match('#^https?://#i'$uri))
            {
                
    $uri site_url($uri);
            }

            switch(
    $method)
            {
                case 
    'refresh'    header("Refresh:0;url=".$uri);
                    break;
                default            : 
    header("Location: ".$uriTRUE$http_response_code);
                    break;
            }
            exit;
        }
    }

    // ------------------------------------------------------------------------

    /**
     * Parse out the attributes
     *
     * Some of the functions use this
     *
     * @access    private
     * @param    array
     * @param    bool
     * @return    string
     */
    if ( ! function_exists('_parse_attributes'))
    {
        function 
    _parse_attributes($attributes$javascript FALSE)
        {
            if (
    is_string($attributes))
            {
                return (
    $attributes != '') ? ' '.$attributes '';
            }

            
    $att '';
            foreach (
    $attributes as $key => $val)
            {
                if (
    $javascript == TRUE)
                {
                    
    $att .= $key '=' $val ',';
                }
                else
                {
                    
    $att .= ' ' $key '="' $val '"';
                }
            }

            if (
    $javascript == TRUE AND $att != '')
            {
                
    $att substr($att0, -1);
            }

            return 
    $att;
        }
    }
    function 
    RemoveSign($str)
    {
    $coDau=array("à","á","ạ","ả","ã","â","ầ","ấ","ậ","ẩ","ẫ","ă","ằ","ắ"
    ,"ặ","ẳ","ẵ","è","é","ẹ","ẻ","ẽ","ê","ề","ế","ệ","ể","ễ","ì","í","ị","ỉ","ĩ",
    "ò","ó","ọ","ỏ","õ","ô","ồ","ố","ộ","ổ","ỗ","ơ"
    ,"ờ","ớ","ợ","ở","ỡ",
    "ù","ú","ụ","ủ","ũ","ư","ừ","ứ","ự","ử","ữ",
    "ỳ","ý","ỵ","ỷ","ỹ",
    "đ",
    "À","Á","Ạ","Ả","Ã","Â","Ầ","Ấ","Ậ","Ẩ","Ẫ","Ă"
    ,"Ằ","Ắ","Ặ","Ẳ","Ẵ",
    "È","É","Ẹ","Ẻ","Ẽ","Ê","Ề","Ế","Ệ","Ể","Ễ",
    "Ì","Í","Ị","Ỉ","Ĩ",
    "Ò","Ó","Ọ","Ỏ","Õ","Ô","Ồ","Ố","Ộ","Ổ","Ỗ","Ơ"
    ,"Ờ","Ớ","Ợ","Ở","Ỡ",
    "Ù","Ú","Ụ","Ủ","Ũ","Ư","Ừ","Ứ","Ự","Ử","Ữ",
    "Ỳ","Ý","Ỵ","Ỷ","Ỹ",
    "Đ","ê","ù","à","quot;","™","}","permil;","{","_",":","&ndash;","&","amp;"," - "," ",",",".","/","-","(",")","[","]","+","-----","----","---","--",urldecode('%E2%80%93'),urldecode('%E2%80%93%E2%80%93'),"!",
    "?"," ?","=","^","@","*","”","“",">","'"
    );
    $khongDau=array("a","a","a","a","a","a","a","a","a","a","a"
    ,"a","a","a","a","a","a",
    "e","e","e","e","e","e","e","e","e","e","e",
    "i","i","i","i","i",
    "o","o","o","o","o","o","o","o","o","o","o","o"
    ,"o","o","o","o","o",
    "u","u","u","u","u","u","u","u","u","u","u",
    "y","y","y","y","y",
    "d",
    "A","A","A","A","A","A","A","A","A","A","A","A"
    ,"A","A","A","A","A",
    "E","E","E","E","E","E","E","E","E","E","E",
    "I","I","I","I","I",
    "O","O","O","O","O","O","O","O","O","O","O","O"
    ,"O","O","O","O","O",
    "U","U","U","U","U","U","U","U","U","U","U",
    "Y","Y","Y","Y","Y",
    "D","e","u","a","","","-","-","-","-","-","","-","","-","-","-","","","-","-","-","","","","","","","","","","","-",
    "","","","","","","","","","");
    return 
    strtolower(str_replace($coDau,$khongDau,$str));
    }


    /* End of file url_helper.php */
    /* Location: ./system/helpers/url_helper.php */
    và mỗi lần sử dụng bạn gọi trong controller cần sử dụng.
    PHP Code:
    $this->load->helper('url'); 
    và trong view chổ nào cần link như vậy bạn chỉ cần gọi.
    PHP Code:
    $this->RemoveSign('text cần chuyển đồ'); 
    vậy là xong rồi. y như ý bạn.
    demo link nè:
    Sửa lần cuối bởi tinhphaistc; 05-06-2013 lúc 04:53 PM.
    THÔNG TIN HỖ TRỢ DIỄN ĐÀN CODEIGNITER VIỆT NAM
    Email: tinhphaistc@gmail.com

  3. The Following 2 Users Say Thank You to tinhphaistc For This Useful Post:

    dzung.tt (05-06-2013),nhan248 (05-06-2013)

  4. #3
    Moderator nhan248's Avatar
    Ngày tham gia
    17-05-2013
    Bài viết
    67
    Cảm ơn
    18
    Được cảm ơn 22 trong 16 bài viết
    thanks pác để em thử xem

Chia sẽ và Bình Luận chủ đề Làm sao rewrite_url trên facebook

Các từ khóa xuất hiện trên google của chủ đề

Chưa có từ khóa lên top google

Quyền viết bài

  • Bạn không thể đăng chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi đính kèm
  • Bạn không thể sửa bài
  •