RewriteCond i RewriteRule trikovi za .htaccess

Apache web server ima modul nazvan "mod_rewrite". Omogućava preusmeravanje i izmjenu tražene URL adrese. Ispod su neke od najpopularnijih modifikacija i preusmeravanja koji se mogu izvršiti. Stavite ove komande u datoteku ".htaccess" u koren dokumenta web stranice. Po popularnosti:

#1. Preusmerite sve poddomene www

Sa ili bez "www"? Ne tako teško pitanje s obzirom da možete odgovoriti i na jedno i preusmeriti ga. Ovaj odlomak, koji se može kombinovati sa prethodnim, preusmerava sve ne-www zahteve na www poddomenu:

<IfModule mod_rewrite.c> RewriteEngine Na RewriteCond% {HTTP_HOST}! ^ Www \. [NC] RewriteRule ^ (. *) $ Http: //www.% {HTTP_HOST} / $ 1 [R = 301, L] </ IfModule>

Imajući svoju web stranicu na poddomenu "www" može biti korisno kada se bavite CDN-om ili službama bezbednosti.

#2. Preusmeri sve na HTTPS

Skoro da nema razloga da ne koristite svoju web lokaciju preko SSL-a (HTTPS). Takođe je veoma važno da odgovorite na HTTP i HTTPS. Ovaj fragment preusmerava sve ne-HTTPS saobraćaj na HTTPS:

<IfModule mod_rewrite.c> RewriteEngine Na RewriteCond% {HTTPS}! Na [NC] RewriteRule ^ (. *) $ Https: //% {HTTP_HOST} / $ 1 [R = 301, L] </ IfModule>

Važno je odabrati jedan pravi (kanonski) URL za SEO razloge.

#3. PHP datoteka za obradu svih ne-statičkih zahteva

Poznat i kao šablon prednjeg kontrolera. Ovaj mehanizam je osnova za bilo koji web okvir. U PHP-u dozvoljava vam da pročitate stvarnu traženu putanju u globalnoj varijabli $ _SERVER ['REQUEST_URI']. Prepisi izgledaju ovako:

<IfModule mod_rewrite.c> RewriteEngine Na RewriteCond% {REQUEST_FILENAME}! -d RewriteCond% {REQUEST_FILENAME}! -f RewriteRule ^ (. *) $ Index.php [QSA, L] </ IfModule>

Imajte na umu da se datoteka PHP obilazi za postojeće datoteke (statički sadržaj).

#4. Ponovo unesite GET parametar na deo URL-a

Ako imate URL adresu koju treba pozvati sa "GET / orders? Id = 13" i želite da odgovorite kao da je pozvana "GET / orders / 13", onda možete koristiti sljedeće:

<IfModule mod_rewrite.c> RewriteEngine Na RewriteCond% {REQUEST_URI} ^ / orders [NC] RewriteCond% {QUERY_STRING} ^ id = ([0-9] +) $ [NC] RewriteRule ^ (. *) $ / $ 1 / % 1 \? [R, L] </ IfModule>

Ovo je naročito korisno kada se migriraju šeme URL-a i potrebna je podrška za stare. Imajte na umu kako je uklonjeni znak pitanja na kraju "RewriteRule" uklonio GET parametre.

 

Ostavite odgovor

Ova stranica koristi Akismet kako bi smanjila neželjenu poštu. Saznajte kako se podaci vašeg komentara obrađuju.

GTranslate Your license is inactive or expired, please subscribe again!