(.htaccess) Elimină parametrii unui URL

În această pagină vei găsi blocuri de cod care te vor ajuta să rezolvi problema URL-urilor care conțin parametri nedoriți.

Problema

Două sunt situațiile cele mai frecvente în care ai să vrei să scapi de parametrii unui URL:

Atunci când URL-ul conține PHPSESSID:

http://example.com/node?PHPSESSID=7dd1d5d1471fa4be2cca8f163cce3257

Sau atunci când URL-ul nu ar trebui să conțină parametri:

http://example.com/?tip=some-value

Soluția

Pentru a îndepărta PHPSESSID plasează acest bloc de cod în fișierul .htaccess din rădăcina directorului aplicației tale web inteligente:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{QUERY_STRING} PHPSESSID=.*$ 

RewriteRule .* %{REQUEST_URI}? [R=301,L]

</IfModule>

Pentru a îndepărta parametri nedoriți folosește acest bloc de cod:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{QUERY_STRING} !=""

RewriteRule ^(.*)$ /$1? [R=301,L]

</IfModule>

ATENȚIE! Aceste blocuri de cod vor îndepărta complet parametrii unui URL.

Dacă vrei ca aceste reguli să excludă un director sau acele URL-uri care conțin anumiți parametri, atunci folosește acest bloc de cod:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{QUERY_STRING} !=""
RewriteCond %{QUERY_STRING} !^numeparametru=.*
RewriteCond %{REQUEST_URI} !^/numedirector.*

RewriteRule ^(.*)$ /$1? [R=301,L]

</IfModule>

O altă problemă

Dacă vrei să îndepărtezi doar unii parametri, spre exemplu doar parametrul PHPSESSID, atunci va trebui să folosești PHP.

Plasează acest bloc de cod în fiecare pagină PHP, înainte de a genera orice alt conținut afișat de către browser.

if (isset($_GET['PHPSESSID'])) {
    /**
     * Află dacă URL-ul conține doar PHPSESSID sau și alti parametri
     */
    $str = (count($_GET) > 1) ? '?' : '';

    /**
     * în cazul în care PHPSESSID este primul parametru
     */
    $requesturi = preg_replace('/\?PHPSESSID=[^&]+/', $str, $_SERVER['REQUEST_URI']);

    /**
     * în cazul în care PHPSESSID este printre parametri
     */
    $requesturi = preg_replace('/&PHPSESSID=[^&]+/', "", $requesturi);

    /**
     * în cazul în care PHPSESSID este primul parametru, după ce va fi îndepărtat
     * trebuie curățat URL-ul
     */
    $requesturi = preg_replace('/\?&/', "?", $requesturi);

    /**
     * informează motoarele de căutare că pagina este mutată permanent la noul URL
     * și redirecționează către URL-ul curat
     */
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: http://" . $_SERVER['HTTP_HOST'] . $requesturi);
    exit;
}
Avram Cosmin

Contactează-mă, află dacă pot lucra pentru tine!

my email address

Iată tehnologiile web pe care le folosesc

  • PHP
  • MySQL
  • jQuery (librărie JavaScript)
  • CodeIgniter (librărie PHP)
  • xHTML
  • CSS
  • JavaScript

Preludiu - Arta Seducției

Trebuie să ai această carte! Este modul cel mai simplu de a afla de ce și cum trebuie să construiești un caracter puternic cu ajutorul căruia să obții ceea ce-ți propui, să ai succes în viață și să ajungi Dragostea Adevărată. - Succes! -

Preludiu - Arta Seducției * Disponibilă doar pe www.Trim.ro Cumpără 36.90RON
 

Citește ultimul articol

Internet mobil pe calculatorul tău

Alege Cosmote, Vodafone sau Orange; principalii operatori de telefonie mobila care pun la dispoziție servicii de internet mobil pe calculatorul tău.

Vezi ultima înregistrare video

(Video) CodeIgniter - Instalare și configurare (ep1)

Acesta este primul din cele 10 episoade care îți vor arăta cum să folosești CodeIgniter, librăria PHP cu care poți realiza aplicații web inteligente.

Află noutățile! Trim.ro Un secret YouTube

«Alege să lucrezi cu cine te ascultă, are răbdare și este interesat să îți înțeleagă nevoile, cum funcționează afacerea ta.»

creare website, standarde și competitivitate