Здравейте в тази статия ще се запознаем с mod_rewrite и някои по прости примери за работата с него.

ModRewrite е мощен инструмент на уеб сървъра Apache. Този модул предоставя лесен начин да се променят / манипулират URL адреси. Колкото и сложно да ви звучи това един обикновен уеб мастър може да извлече много ползи от него. Ще ви дам пример с най-често употребяваната функционалност.

Създаване лесни за запомняне URL адреси или известни също като COOL URL адреси, други ги наричат Search Engine Friendly URL адреси. Например имате сложен сайт, базиран някои скриптов език като PHP, Perl и т.н. В общи линии си URL адреса ви би изглеждал така:

http://www.example.com/view.php?cat=articles&a=10&page=20&lang=en

Не е лесно да се запомни такъв адрес.
Чрез ModRewrite можете да направите URL-то да изглежда така:

http://www.example.com/en/articles/10-2

Ето го и кода:

RewriteEngine On RewriteRule ^([a-z]*)/([a-z]*)/([1-9]+)(-[1-9]+)? $ http://www.example.com/view.php?cat=$2&a=$3&page=$4&lang=$1 [L]

Какво прави кода? Той използва регулярен израз, за да намери съвпадащи валидни URL(regular expresion).В случай, че намери съвпадение пренаписва адреса и потребителят никога няма да види дълго URL в браузъра си.

Да речем, че искате "index.php" да се отваря като "index.html", в този случаи са ви нужни само два реда в .htaccess:

RewriteEngine On RewriteRule index.html news.php

Или пък да речем искате всички .php файлове да са заменени с .html. Ето пример:

RewriteEngine On RewriteRule ^(.*).html $1.php [QSA,L]

Следващият пример, който ще разгледам ще ползва и променлива, която ще подава към php файла. Например искаме вместо news.php?id.ID(както са в CMS-a e107) новините на сайта ни да са с адреси от тип news-$ID.html. Ето пример:

RewriteEngine On RewriteRule news-([0-9]*).html(.*)$ news.php?extend.$1

Ако пък искаме потребителските профили в сайта ни да имат кратък адрес от тип http://mysite.org/username, както са в Facebook, може да ползваме следващият пример:

RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule .+ - [L] RewriteRule ^([^/]+)$ profile.php?ID=$1 [QSA,L]

Официалната документация за ModRewrite, може да бъде намерена тук.
В нея може да прочетете повече по темата. Ако имате предложения или въпроси може да ни пишете в коментарите към статията, надявам се да ви е била полезна и да сте разбрали основните неща и принципи по работата с този модул.

Етикети: #htaccess [#modrewrite](https://www.icn.bg/bg/blog/?tag=modrewrite){: .tag-link} #cool-urls #seo-urls #shorten-urls #kratak-adres #search-engine-friendly-urls #optimizirani-url #ueb-sarvar-apache #sakrashtavane-na-adresi