Pagina 1 din 2 12 UltimulUltimul
Rezultate 1 la 10 din 13

Subiect: Rescriere url

  1. #1
    Avatarul lui pitox
    pitox este deconectat Membru SeoPedia
    Reputatie:
    34
    Data înscrierii
    10th March 2008
    Vârstă
    38
    Posturi
    55
    Putere Rep
    34


    Implicit Rescriere url

    Salutare!

    Am nevoie de un mic sfat:
    Daca in numele unui produs apare caracterul "-" (cratima), cand se creeaza URL-ul friendly, in locul acelui caracter apare "%252d". Restul URL-ului se scrie corect.

    Ex: Incarcator Hp Pavilion dv7-3003el 90W

    Cum pot sa fac sa apara URL-ul scris corect? Si, mai important, cum fac sa nu pierd indexarea daca fac aceasta modificare? Ca parca nu as vrea sa pierd pozitia in google
    Multumesc!

    --- Later Edit --- (ca mi-a fost lene sa apas "Edit")

    Nu ma ajuta si pe mine nimeni??

    Macar sa ii spun apacheului sa nu imi mai schimbe din cratima in "%252d"
    Ultima modificare făcută de Nichita; 15th April 2011 la 22:57.
    Ca sa incarci o baterie laptop ai nevoie de un incarcator laptop !

  2. #2
    Avatarul lui Chaos
    Chaos este deconectat Ambasador
    Reputatie:
    37
    Data înscrierii
    3rd April 2006
    Locaţie
    Cluj-Napoca
    Vârstă
    43
    Posturi
    389
    Putere Rep
    37


    Implicit

    hmm... din cate vad eu tu mai ai cratime in url si alea le pune corect. vezi cum formezi url-ul in cod.. daca nu ai ceva pe acolo.

  3. #3
    Avatarul lui ionutzz23
    ionutzz23 este deconectat Membru SeoPedia
    Reputatie:
    36
    Data înscrierii
    6th April 2011
    Locaţie
    Bucuresti
    Vârstă
    32
    Posturi
    196
    Putere Rep
    36


    Implicit

    este o problema de codare, liniutele din denumirea produsului ti-le transforma in %252d , iar spatiile din denumirea produsului in liniute.Verifica in index.php sau scriene aici codul php din fila index.php

  4. #4
    Avatarul lui Netul
    Netul este deconectat Ambasador
    Reputatie:
    49
    Data înscrierii
    5th January 2006
    Locaţie
    Iasi
    Vârstă
    47
    Posturi
    1.068
    Putere Rep
    49


    Implicit

    Eu fac asa in cazurile astea:
    - in baza de date adaug campul "permalink", care contine url-ul fara niciun fel de caractere speciale, si cu "-" in loc de spatiu
    - cand afisez un url, preiau permalinkul din baza de date.
    Pt generarea permalinkului folosesc functia:

    Cod PHP:
    function Permalink ($string){
        return 
    strtolower(trim(preg_replace("/[^0-9a-zA-Z]+/""-"$string),"-"));
    }  

    $permalink Permalink($titlu); // de ex. generez url-ul folosind titlul articolului / produsului 

  5. #5
    Avatarul lui Alex Dumitru
    Alex Dumitru este deconectat Administrator
    Reputatie:
    64
    Data înscrierii
    20th April 2006
    Locaţie
    Pitesti / Bucuresti
    Vârstă
    37
    Posturi
    3.339
    Putere Rep
    64


    Implicit

    Cred ca e un caracter special si nu cratima normala. Am patit si eu asa cu Wordpress si se pare ca asta e motivul.

  6. #6
    Avatarul lui pitox
    pitox este deconectat Membru SeoPedia
    Reputatie:
    34
    Data înscrierii
    10th March 2008
    Vârstă
    38
    Posturi
    55
    Putere Rep
    34


    Implicit

    Salut!

    Mi-a luat ceva sa gasesc functia, dar cred ca asta este:
    Cod:
    	function RewriteIncomingRequest()
    	{
    		// Using path info
    		if (isset($_SERVER['PATH_INFO']) && $_SERVER['PATH_INFO'] !== '' && basename($_SERVER['PATH_INFO']) != 'index.php') {
    			$path = $_SERVER['PATH_INFO'];
    			if (isset($_SERVER['SCRIPT_NAME'])) {
    				$uriTest = str_ireplace($_SERVER['SCRIPT_NAME'], "", $path);
    				if($uriTest != '') {
    					$uri = $uriTest;
    				}
    			} else if (isset($_SERVER['SCRIPT_FILENAME'])) {
    				$file = str_ireplace(ISC_BASE_PATH, "", $_SERVER['SCRIPT_FILENAME']);
    				$uriTest = str_ireplace($file, "", $path);
    				if($uriTest != '') {
    					$uri = $uriTest;
    				}
    			}
    			$GLOBALS['UrlRewriteBase'] = $GLOBALS['ShopPath'] . "/index.php/";
    		}
    		// Using HTTP_X_REWRITE_URL for ISAPI_Rewrite on IIS based servers
    		if(isset($_SERVER['HTTP_X_REWRITE_URL']) && !isset($uri)) {
    			$uri = $_SERVER['HTTP_X_REWRITE_URL'];
    			$GLOBALS['UrlRewriteBase'] = $GLOBALS['ShopPath'] . "/";
    		}
    		// Using REQUEST_URI
    		if (isset($_SERVER['REQUEST_URI']) && !isset($uri)) {
    			$uri = $_SERVER['REQUEST_URI'];
    			$GLOBALS['UrlRewriteBase'] = $GLOBALS['ShopPath'] . "/";
    		}
    		// Using SCRIPT URL
    		if (isset($_SERVER['SCRIPT_URL']) && !isset($uri)) {
    			$uri = $_SERVER['SCRIPT_URL'];
    			$GLOBALS['UrlRewriteBase'] = $GLOBALS['ShopPath'] . "/";
    		}
    		// Using REDIRECT_URL
    		if (isset($_SERVER['REDIRECT_URL']) && !isset($uri)) {
    			$uri = $_SERVER['REDIRECT_URL'];
    			$GLOBALS['UrlRewriteBase'] = $GLOBALS['ShopPath'] . "/";
    		}
    		// Using REDIRECT URI
    		if (isset($_SERVER['REDIRECT_URI']) && !isset($uri)) {
    			$uri = $_SERVER['REDIRECT_URI'];
    			$GLOBALS['UrlRewriteBase'] = $GLOBALS['ShopPath'] . "/";
    		}
    		// Using query string?
    		if (isset($_SERVER['QUERY_STRING']) && !isset($uri)) {
    			$uri = $_SERVER['QUERY_STRING'];
    			$GLOBALS['UrlRewriteBase'] = $GLOBALS['ShopPath'] . "/?";
    			$_SERVER['QUERY_STRING'] = preg_replace("#(.*?)\?#", "", $_SERVER['QUERY_STRING']);
    		}
    
    		if (isset($_SERVER['REDIRECT_QUERY_STRING'])) {
    			$_SERVER['QUERY_STRING'] = $_SERVER['REDIRECT_QUERY_STRING'];
    		}
    
    		if(!isset($uri)) {
    			$uri = '';
    		}
    
    		$appPath = preg_quote(trim($GLOBALS['AppPath'], "/"), "#");
    		$uri = trim($uri, "/");
    		$uri = trim(preg_replace("#".$appPath."#i", "", $uri,1), "/");
    // Strip off anything after a ? in case we've got the query string too
    		$uri = preg_replace("#\?(.*)#", "", $uri);
    
    		$GLOBALS['PathInfo'] = explode("/", $uri);
    
    		if(strtolower($GLOBALS['PathInfo'][0]) == "index.php") {
    			$GLOBALS['PathInfo'][0] = '';
    		}
    
    		if (!isset($GLOBALS['PathInfo'][0]) || !$GLOBALS['PathInfo'][0]) {
    			$GLOBALS['PathInfo'][0] = "index";
    		}
    
    		if(!isset($GLOBALS['RewriteRules'][$GLOBALS['PathInfo'][0]])) {
    			$GLOBALS['PathInfo'][0] = "404";
    		}
    
    		$handler = $GLOBALS['RewriteRules'][$GLOBALS['PathInfo'][0]];
    		$script = $handler['class'];
    		$className = $handler['name'];
    		$globalName = $handler['global'];
    
    		$GLOBALS[$globalName] = GetClass($className);
    		$GLOBALS[$globalName]->HandlePage();
    	}


    --- Later Edit --- (ca mi-a fost lene sa apas "Edit")

    Anyone?
    Ca sa incarci o baterie laptop ai nevoie de un incarcator laptop !

  7. #7
    Avatarul lui Cedik
    Cedik este deconectat Membru SeoPedia
    Reputatie:
    28
    Data înscrierii
    4th May 2011
    Locaţie
    Ploiesti
    Vârstă
    38
    Posturi
    49
    Putere Rep
    28


    Implicit

    Adauga un $uri = str_replace("%252d", "-", $uri);
    E cea mai rapida varianta pana depanezi codul. Asa o sa iti puna - in loc de %252d

  8. #8
    Avatarul lui pitox
    pitox este deconectat Membru SeoPedia
    Reputatie:
    34
    Data înscrierii
    10th March 2008
    Vârstă
    38
    Posturi
    55
    Putere Rep
    34


    Implicit

    Citat Postat în original de Cedik Vezi Post
    Adauga un $uri = str_replace("%252d", "-", $uri);
    E cea mai rapida varianta pana depanezi codul. Asa o sa iti puna - in loc de %252d
    Salut!

    Poti sa imi detaliezi un pic unde trebuie sa pun acest cod?
    Mersi!

    --- Later Edit --- (ca mi-a fost lene sa apas "Edit")

    Am gasit in cod unde trebuia modificat. Mersi mult de ajutor.
    As vrea sa mai fac totusi o chestie.

    Pot sa scriu o regula in .htaccess, ca toate paginile care contin in url "%252d" sa fie redirectionate catre varianta cu"-" ? adica /produs%252d1.html sa fie redirectionata in /produs-1.html si /produs%252dnou%252d1.html sa fie redirectionata in /produs-nou-1.html ?

    Thanks again
    Ca sa incarci o baterie laptop ai nevoie de un incarcator laptop !

  9. #9
    Avatarul lui Cedik
    Cedik este deconectat Membru SeoPedia
    Reputatie:
    28
    Data înscrierii
    4th May 2011
    Locaţie
    Ploiesti
    Vârstă
    38
    Posturi
    49
    Putere Rep
    28


    Implicit

    De ce nu o faci din Php? E mai simplu asa, ii bagi un redirect din header

    Cod:
    $base_url = $_SERVER["SERVER_NAME"]; 
    
    if {strpos($base_url,"%252d")
     {
    	$base_url = str_replace("%252d", "-", $base_url);
    	header("Location: $base_url");
    }
    
    else
     {
     
      restul codului
     
     }
    Cu .htaccess e mai complicat, ca deja ai de cautat un pattern in url...
    Daca avea doar un singur %252d in url, era simplu, dar daca ai mai multe, e mai dificil

  10. #10
    Avatarul lui pitox
    pitox este deconectat Membru SeoPedia
    Reputatie:
    34
    Data înscrierii
    10th March 2008
    Vârstă
    38
    Posturi
    55
    Putere Rep
    34


    Implicit

    Citat Postat în original de Cedik Vezi Post
    De ce nu o faci din Php? E mai simplu asa, ii bagi un redirect din header

    Cod:
    $base_url = $_SERVER["SERVER_NAME"]; 
    
    if {strpos($base_url,"%252d")
     {
    	$base_url = str_replace("%252d", "-", $base_url);
    	header("Location: $base_url");
    }
    
    else
     {
     
      restul codului
     
     }
    Cu .htaccess e mai complicat, ca deja ai de cautat un pattern in url...
    Daca avea doar un singur %252d in url, era simplu, dar daca ai mai multe, e mai dificil
    Acel cod trebuie sa il pun in header?
    aici : $base_url = $_SERVER["SERVER_NAME"]; trebuie sa pun ceva date de la serverul meu?

    mersi!
    Ca sa incarci o baterie laptop ai nevoie de un incarcator laptop !

Pagina 1 din 2 12 UltimulUltimul

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •